DependencyProperty.RegisterReadOnly Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Registra una propiedad de dependencia como una propiedad de dependencia de solo lectura.
Sobrecargas
RegisterReadOnly(String, Type, Type, PropertyMetadata) |
Registra una propiedad de dependencia de solo lectura, con el tipo de propiedad, el tipo de propietario y los metadatos de propiedad especificados. |
RegisterReadOnly(String, Type, Type, PropertyMetadata, ValidateValueCallback) |
Registra una propiedad de dependencia 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. |
RegisterReadOnly(String, Type, Type, PropertyMetadata)
Registra una propiedad de dependencia de solo lectura, con el tipo de propiedad, el tipo de propietario y los metadatos de propiedad especificados.
public:
static System::Windows::DependencyPropertyKey ^ RegisterReadOnly(System::String ^ name, Type ^ propertyType, Type ^ ownerType, System::Windows::PropertyMetadata ^ typeMetadata);
public static System.Windows.DependencyPropertyKey RegisterReadOnly (string name, Type propertyType, Type ownerType, System.Windows.PropertyMetadata typeMetadata);
static member RegisterReadOnly : string * Type * Type * System.Windows.PropertyMetadata -> System.Windows.DependencyPropertyKey
Public Shared Function RegisterReadOnly (name As String, propertyType As Type, ownerType As Type, typeMetadata 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.
- typeMetadata
- PropertyMetadata
Metadatos de propiedad de la propiedad de dependencia.
Devoluciones
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.
Ejemplos
En el ejemplo siguiente se registra una AquariumSize
propiedad de dependencia como de solo lectura. En el ejemplo se define AquariumSizeKey
como una clave interna (para que otras clases del ensamblado puedan invalidar los metadatos) y expone el identificador de propiedad de dependencia basado en esa clave como AquariumSizeProperty
. Además, se crea un contenedor para AquariumSize
, con solo un descriptor de acceso get.
internal static readonly DependencyPropertyKey AquariumSizeKey = DependencyProperty.RegisterReadOnly(
"AquariumSize",
typeof(double),
typeof(Aquarium),
new PropertyMetadata(double.NaN)
);
public static readonly DependencyProperty AquariumSizeProperty =
AquariumSizeKey.DependencyProperty;
public double AquariumSize
{
get { return (double)GetValue(AquariumSizeProperty); }
}
Friend Shared ReadOnly AquariumSizeKey As DependencyPropertyKey = DependencyProperty.RegisterReadOnly("AquariumSize", GetType(Double), GetType(Aquarium), New PropertyMetadata(Double.NaN))
Public Shared ReadOnly AquariumSizeProperty As DependencyProperty = AquariumSizeKey.DependencyProperty
Public ReadOnly Property AquariumSize() As Double
Get
Return CDbl(GetValue(AquariumSizeProperty))
End Get
End Property
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 de dependencia de solo lectura son un escenario bastante típico tanto en la API existente como en escenarios de personalización, ya que otras características de WPF pueden requerir una propiedad de dependencia incluso si esa propiedad no está pensada para ser configurable por los autores de llamadas. Puede usar el valor de una propiedad de dependencia de solo lectura como base para otras operaciones del sistema de propiedades que toman una propiedad de dependencia, como basar un Trigger en la propiedad de dependencia en un estilo.
Para obtener más información sobre el registro de propiedades de dependencia, vea DependencyProperty.
Se aplica a
RegisterReadOnly(String, Type, Type, PropertyMetadata, ValidateValueCallback)
Registra una propiedad de dependencia 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 ^ RegisterReadOnly(System::String ^ name, Type ^ propertyType, Type ^ ownerType, System::Windows::PropertyMetadata ^ typeMetadata, System::Windows::ValidateValueCallback ^ validateValueCallback);
public static System.Windows.DependencyPropertyKey RegisterReadOnly (string name, Type propertyType, Type ownerType, System.Windows.PropertyMetadata typeMetadata, System.Windows.ValidateValueCallback validateValueCallback);
static member RegisterReadOnly : string * Type * Type * System.Windows.PropertyMetadata * System.Windows.ValidateValueCallback -> System.Windows.DependencyPropertyKey
Public Shared Function RegisterReadOnly (name As String, propertyType As Type, ownerType As Type, typeMetadata 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.
- typeMetadata
- 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
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 de dependencia de solo lectura son un escenario bastante típico. Puede usar el valor de una propiedad de dependencia de solo lectura como base para otras operaciones del sistema de propiedades que toman una propiedad de dependencia, como basar un Trigger en la propiedad de dependencia en un estilo.
Para obtener más información sobre el registro de propiedades de dependencia, vea DependencyProperty.
La validación en una propiedad de dependencia de solo lectura puede ser menos importante. El nivel de acceso no público que especifique para la clave reduce la probabilidad de una entrada arbitraria no válida.