Compartir a través de


DependencyPropertyKey Clase

Definición

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 readonlyDependencyProperty 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)

Se aplica a

Consulte también