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 un acceso de escritura limitado a una propiedad de dependencia de sólo 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" y como identificador de una operación de determinación protegida que establece el valor basado en 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 Las instancias se obtienen como el 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 en DependencyPropertyKey las 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.
El DependencyPropertyKey valor devuelto por el registro de propiedades de dependencia de solo lectura no debe hacerse público, ya que exponer la clave hace que la propiedad se pueda establecer, lo que anula el punto de registrarlo como una propiedad de dependencia de solo lectura. Además, exponer la clave provoca un error de coincidencia entre los comportamientos de las propiedades de dependencia disponibles y sus implementaciones de contenedor de propiedades de Common Language Runtime (CLR), que son un diseño de clase incorrecto.
En lugar de exponer la propia clave, en su lugar debe exponer el DependencyProperty valor de como DependencyPropertyKey en la public static readonly
DependencyProperty 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 para DependencyProperty muchas operaciones del sistema de propiedades.
Propiedades
DependencyProperty |
Obtiene el identificador de propiedad de dependencia asociado a este identificador de propiedad de dependencia de sólo lectura especializado. |
Métodos
Equals(Object) |
Determina si el objeto especificado es igual que el objeto actual. (Heredado de Object) |
GetHashCode() |
Sirve como la función hash predeterminada. (Heredado de Object) |
GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
MemberwiseClone() |
Crea una copia superficial del Object actual. (Heredado de Object) |
OverrideMetadata(Type, PropertyMetadata) |
Invalida los metadatos de una propiedad de dependencia de sólo lectura que está representada por este identificador de propiedad de dependencia. |
ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |