DependencyPropertyKey Clase
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í.
Proporciona un identificador de propiedad de dependencia para el acceso limitado de escritura a una propiedad de dependencia de solo lectura.
public ref class DependencyPropertyKey sealed
public sealed class DependencyPropertyKey
type DependencyPropertyKey = class
Public NotInheritable Class DependencyPropertyKey
- Herencia
-
DependencyPropertyKey
Ejemplos
En el ejemplo siguiente se registra una propiedad de dependencia de solo lectura y también se usa la clave para dos propósitos en otros miembros de clase: implementar el "contenedor get" y como identificador de una operación de determinación protegida que establece el valor en función de los cálculos de otros valores de propiedad.
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
DependencyPropertyKey instancias se obtienen como valor devuelto de una llamada de registro de propiedad de dependencia mediante los métodos RegisterReadOnly o RegisterAttachedReadOnly.
Los tipos que registran una propiedad de dependencia pueden usar el DependencyPropertyKey en llamadas a SetValue y ClearValue que ajustan el valor de la propiedad como parte de la lógica de clase. Si lo permite el nivel de acceso de la clave, las clases relacionadas también pueden usar la clave y la propiedad de dependencia. Por ejemplo, puede declarar la clave como interna y otros tipos dentro del mismo ensamblado también pueden establecer esa propiedad de dependencia.
No se debe hacer público el DependencyPropertyKey devuelto por el registro de propiedades de dependencia de solo lectura, ya que exponer la clave hace que la propiedad se pueda establecer, lo que anula el punto de registrarla como una propiedad de dependencia de solo lectura. Además, exponer la clave provoca una discrepancia entre los comportamientos de las propiedades de dependencia disponibles y sus implementaciones de contenedor de propiedades de Common Language Runtime (CLR), que es un diseño de clase incorrecto.
En lugar de exponer la propia clave, en su lugar debe exponer el valor DependencyProperty del DependencyPropertyKey como un public static readonly
DependencyProperty en la clase. Esto permite que la propiedad devuelva un identificador de propiedad de dependencia válido para determinadas operaciones del sistema de propiedades, como enumerar valores establecidos localmente. Sin embargo, el identificador obtenido no tiene todas las funcionalidades de un DependencyProperty para muchas operaciones del sistema de propiedades.
Propiedades
DependencyProperty |
Obtiene el identificador de propiedad de dependencia asociado a este identificador especializado de propiedad de dependencia de solo lectura. |
Métodos
Equals(Object) |
Determina si el objeto especificado es igual al objeto actual. (Heredado de Object) |
GetHashCode() |
Actúa como función hash predeterminada. (Heredado de Object) |
GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
MemberwiseClone() |
Crea una copia superficial del Objectactual. (Heredado de Object) |
OverrideMetadata(Type, PropertyMetadata) |
Invalida los metadatos de una propiedad de dependencia de solo lectura representada por este identificador de propiedad de dependencia. |
ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |