DependencyPropertyKey Clase

Definición

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)

Se aplica a

Consulte también