Condividi tramite


DependencyPropertyKey Classe

Definizione

Fornisce un identificatore della proprietà di dipendenza per l'accesso in scrittura limitato a una proprietà di dipendenza di sola lettura.

public ref class DependencyPropertyKey sealed
public sealed class DependencyPropertyKey
type DependencyPropertyKey = class
Public NotInheritable Class DependencyPropertyKey
Ereditarietà
DependencyPropertyKey

Esempio

Nell'esempio seguente viene registrata una proprietà di dipendenza di sola lettura e viene usata anche la chiave per due scopi in altri membri della classe: implementazione del get "wrapper" e come identificatore per un'operazione di determinazione protetta che imposta il valore in base ai calcoli di altri valori di proprietà.

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

Commenti

DependencyPropertyKey istanze vengono ottenute come valore restituito di una chiamata di registrazione delle proprietà di dipendenza usando i metodi RegisterReadOnly o RegisterAttachedReadOnly.

I tipi che registrano una proprietà di dipendenza possono usare il DependencyPropertyKey nelle chiamate a SetValue e ClearValue che regolano il valore della proprietà come parte della logica della classe. Se consentito dal livello di accesso della chiave, anche le classi correlate possono usare la chiave e la proprietà di dipendenza. Ad esempio, è possibile dichiarare la chiave come interna e altri tipi all'interno dello stesso assembly possono anche impostare tale proprietà di dipendenza.

Il DependencyPropertyKey restituito dalla registrazione delle proprietà di dipendenza di sola lettura non deve essere reso pubblico, perché l'esposizione della chiave rende la proprietà impostabile, eliminando così il punto di registrazione come proprietà di dipendenza di sola lettura. Inoltre, l'esposizione della chiave causa una mancata corrispondenza tra i comportamenti delle proprietà di dipendenza disponibili e le implementazioni del wrapper delle proprietà CLR (Common Language Runtime), ovvero una progettazione di classi non valida.

Anziché esporre la chiave stessa, è consigliabile esporre il valore DependencyProperty del DependencyPropertyKey come public static readonlyDependencyProperty nella classe. Ciò consente alla proprietà di restituire un identificatore di proprietà di dipendenza valido per determinate operazioni del sistema di proprietà, ad esempio l'enumerazione dei valori impostati localmente. Tuttavia, l'identificatore ottenuto non dispone delle funzionalità complete di un DependencyProperty per molte operazioni del sistema di proprietà.

Proprietà

DependencyProperty

Ottiene l'identificatore della proprietà di dipendenza associato a questo identificatore specializzato della proprietà di dipendenza di sola lettura.

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
OverrideMetadata(Type, PropertyMetadata)

Esegue l'override dei metadati di una proprietà di dipendenza di sola lettura rappresentata da questo identificatore di proprietà di dipendenza.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a

Vedi anche