DependencyPropertyKey Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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 readonly
DependencyProperty 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) |