DependencyPropertyKey.DependencyProperty Propiedad
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í.
Obtiene el identificador de propiedad de dependencia asociado a este identificador especializado de propiedad de dependencia de solo lectura.
public:
property System::Windows::DependencyProperty ^ DependencyProperty { System::Windows::DependencyProperty ^ get(); };
public System.Windows.DependencyProperty DependencyProperty { get; }
member this.DependencyProperty : System.Windows.DependencyProperty
Public ReadOnly Property DependencyProperty As DependencyProperty
Valor de propiedad
Identificador de propiedad de dependencia pertinente.
Ejemplos
En el ejemplo siguiente se llama a DependencyProperty para exponer el identificador de DependencyProperty (AquariumGraphicProperty
) para la propiedad de dependencia de AquariumGraphic
de solo lectura en una clase. En el ejemplo también se muestra la creación de DependencyPropertyKey (como miembro interno) y el descriptor de acceso get para AquariumGraphic
.
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
El valor de DependencyProperty permite que el identificador de una propiedad de solo lectura participe en las operaciones del sistema de propiedades comunes mediante algunas de las mismas interfaces que se usan para las propiedades de dependencia de lectura y escritura.
Para implementar el descriptor de acceso get property para una propiedad de dependencia de solo lectura, debe crear y exponer un identificador de DependencyProperty en la clase. Esto sirve para dos propósitos:
Su propia clase necesita el identificador de DependencyProperty para implementar el descriptor de acceso get para el contenedor de propiedades. El DependencyProperty se usa como parámetro para la llamada GetValue que implementa el descriptor de acceso get.
DependencyProperty identificadores exponen la propiedad de dependencia al sistema de propiedades de forma que otros métodos que dependen de metadatos puedan acceder a ella en un formulario estándar. Por ejemplo, si llamó a GetLocalValueEnumerator en algunos DependencyObject y obtuvo una enumeración de propiedades (valores e identificadores) establecidos localmente, el identificador devuelto para una propiedad de dependencia de solo lectura sería el valor de DependencyProperty en lugar de la clave. No exponer un identificador de DependencyProperty no aumenta la seguridad de la propiedad de dependencia de solo lectura de ninguna manera, simplemente hace que las operaciones que impliquen a la propiedad sean más difíciles tanto para las clases derivadas como para las instancias de clase derivadas posteriores.
Para exponer el identificador de DependencyProperty en la clase, llame a DependencyProperty directamente en la clave. Use este valor para crear un identificador de public static readonly
DependencyProperty en la clase , que en paralelo el DependencyPropertyKey.