Comparteix a través de


DependencyProperty.RegisterAttachedReadOnly Método

Definición

Registra una propiedad adjunta de solo lectura.

Sobrecargas

RegisterAttachedReadOnly(String, Type, Type, PropertyMetadata)

Registra una propiedad adjunta de solo lectura, con el tipo de propiedad, el tipo de propietario y los metadatos de propiedad especificados.

RegisterAttachedReadOnly(String, Type, Type, PropertyMetadata, ValidateValueCallback)

Registra una propiedad adjunta de solo lectura, con el tipo de propiedad, el tipo de propietario, los metadatos de propiedad y una devolución de llamada de validación especificados.

RegisterAttachedReadOnly(String, Type, Type, PropertyMetadata)

Registra una propiedad adjunta de solo lectura, con el tipo de propiedad, el tipo de propietario y los metadatos de propiedad especificados.

public:
 static System::Windows::DependencyPropertyKey ^ RegisterAttachedReadOnly(System::String ^ name, Type ^ propertyType, Type ^ ownerType, System::Windows::PropertyMetadata ^ defaultMetadata);
public static System.Windows.DependencyPropertyKey RegisterAttachedReadOnly (string name, Type propertyType, Type ownerType, System.Windows.PropertyMetadata defaultMetadata);
static member RegisterAttachedReadOnly : string * Type * Type * System.Windows.PropertyMetadata -> System.Windows.DependencyPropertyKey
Public Shared Function RegisterAttachedReadOnly (name As String, propertyType As Type, ownerType As Type, defaultMetadata As PropertyMetadata) As DependencyPropertyKey

Parámetros

name
String

Nombre de la propiedad de dependencia que se va a registrar.

propertyType
Type

Tipo de la propiedad.

ownerType
Type

Tipo de propietario que registra la propiedad de dependencia.

defaultMetadata
PropertyMetadata

Metadatos de propiedad de la propiedad de dependencia.

Devoluciones

DependencyPropertyKey

Clave de propiedad de dependencia que debe usarse para establecer el valor de un campo estático de solo lectura en la clase, que se usa para hacer referencia a la propiedad de dependencia más tarde.

Comentarios

Este método devuelve el tipo DependencyPropertyKey, mientras que RegisterAttached devuelve el tipo DependencyProperty. Normalmente, las claves que representan propiedades de solo lectura no se hacen públicas, ya que las claves se pueden usar para establecer el valor de la propiedad de dependencia llamando a SetValue(DependencyPropertyKey, Object). El diseño de la clase afectará a los requisitos, pero generalmente se recomienda limitar el acceso y la visibilidad de cualquiera DependencyPropertyKey a solo las partes del código necesarias para establecer esa propiedad de dependencia como parte de la lógica de la clase o de la aplicación. También se recomienda exponer un identificador de propiedad de dependencia para la propiedad de dependencia de solo lectura, exponiendo el valor de DependencyPropertyKey.DependencyProperty como un public static readonly campo en la clase.

Las propiedades adjuntas de solo lectura son un escenario poco frecuente, ya que el escenario principal de una propiedad adjunta es su uso en XAML. Sin un establecedor público, no se puede establecer una propiedad adjunta en la sintaxis XAML.

Para obtener más información sobre el registro de propiedades de dependencia, vea DependencyProperty.

Usar RegisterAttached para las propiedades de dependencia heredadas de valor

Un escenario concreto para registrar una propiedad de dependencia como adjunta es admitir la herencia de valores de propiedad. Debe registrar propiedades de dependencia heredadas de valor con RegisterAttached incluso si la clase define descriptores de acceso de contenedor de propiedades que exponen la propiedad de dependencia, e incluso si no tiene previsto exponer métodos estáticos Get* y Set* para proporcionar descriptores de acceso de compatibilidad con propiedades adjuntas verdaderas. Aunque la herencia de valores de propiedad puede parecer funcionar para propiedades de dependencia no adjuntas, el comportamiento de herencia de una propiedad no adjunta a través de determinados límites de elemento en el árbol en tiempo de ejecución no está definido. El registro de la propiedad como adjunta hace que la propiedad adjunta sea una propiedad global en el sistema de propiedades y garantiza que la herencia de valores de propiedad funciona en todos los límites de un árbol de elementos. Use siempre RegisterAttached para registrar las propiedades donde especifique Inherits en los metadatos. Para más información, vea Herencia de valores de propiedad.

Se aplica a

RegisterAttachedReadOnly(String, Type, Type, PropertyMetadata, ValidateValueCallback)

Registra una propiedad adjunta de solo lectura, con el tipo de propiedad, el tipo de propietario, los metadatos de propiedad y una devolución de llamada de validación especificados.

public:
 static System::Windows::DependencyPropertyKey ^ RegisterAttachedReadOnly(System::String ^ name, Type ^ propertyType, Type ^ ownerType, System::Windows::PropertyMetadata ^ defaultMetadata, System::Windows::ValidateValueCallback ^ validateValueCallback);
public static System.Windows.DependencyPropertyKey RegisterAttachedReadOnly (string name, Type propertyType, Type ownerType, System.Windows.PropertyMetadata defaultMetadata, System.Windows.ValidateValueCallback validateValueCallback);
static member RegisterAttachedReadOnly : string * Type * Type * System.Windows.PropertyMetadata * System.Windows.ValidateValueCallback -> System.Windows.DependencyPropertyKey
Public Shared Function RegisterAttachedReadOnly (name As String, propertyType As Type, ownerType As Type, defaultMetadata As PropertyMetadata, validateValueCallback As ValidateValueCallback) As DependencyPropertyKey

Parámetros

name
String

Nombre de la propiedad de dependencia que se va a registrar.

propertyType
Type

Tipo de la propiedad.

ownerType
Type

Tipo de propietario que registra la propiedad de dependencia.

defaultMetadata
PropertyMetadata

Metadatos de propiedad de la propiedad de dependencia.

validateValueCallback
ValidateValueCallback

Referencia a una devolución de llamada creada por el usuario que debe realizar cualquier validación personalizada del valor de la propiedad de dependencia además de la validación habitual de tipo.

Devoluciones

DependencyPropertyKey

Clave de propiedad de dependencia que debe usarse para establecer el valor de un campo estático de solo lectura en la clase, que se usa para hacer referencia a la propiedad de dependencia.

Comentarios

Este método devuelve el tipo DependencyPropertyKey, mientras que RegisterAttached devuelve el tipo DependencyProperty. Normalmente, las claves que representan el tipo DependencyProperty. Normalmente, las claves que representan propiedades de solo lectura no se hacen públicas, ya que las claves se pueden usar para establecer el valor de la propiedad de dependencia llamando a SetValue(DependencyPropertyKey, Object). El diseño de la clase afectará a los requisitos, pero generalmente se recomienda limitar el acceso y la visibilidad de cualquiera DependencyPropertyKey a solo las partes del código necesarias para establecer esa propiedad de dependencia como parte de la lógica de la clase o de la aplicación. También se recomienda exponer un identificador de propiedad de dependencia para la propiedad de dependencia de solo lectura, exponiendo el valor de DependencyPropertyKey.DependencyProperty como un public static readonly campo en la clase.

Las propiedades adjuntas de solo lectura son un escenario poco frecuente, ya que el escenario principal de una propiedad adjunta es su uso en XAML. Sin un establecedor público, no se puede establecer una propiedad adjunta en la sintaxis XAML.

Para obtener más información sobre el registro de propiedades de dependencia, vea DependencyProperty.

Usar RegisterAttached para las propiedades de dependencia heredadas de valor

Un escenario concreto para registrar una propiedad de dependencia como adjunta en lugar de es admitir la herencia de valores de Register propiedad. Debe registrar propiedades de dependencia heredadas de valor con RegisterAttached incluso si la clase define descriptores de acceso de contenedor de propiedades que exponen la propiedad de dependencia, e incluso si no tiene previsto exponer métodos estáticos Get* y Set* para proporcionar descriptores de acceso de compatibilidad con propiedades adjuntas verdaderas. Aunque la herencia de valores de propiedad puede parecer funcionar para propiedades de dependencia no adjuntas, el comportamiento de herencia de una propiedad no adjunta a través de determinados límites de elemento en el árbol en tiempo de ejecución no está definido. El registro de la propiedad como adjunta hace que la propiedad adjunta sea una propiedad global en el sistema de propiedades y garantiza que la herencia de valores de propiedad funciona en todos los límites de un árbol de elementos. Use siempre RegisterAttached para registrar las propiedades donde especifique Inherits en los metadatos. Para más información, vea Herencia de valores de propiedad.

Se aplica a