DependencyPropertyKey Classe

Definizione

Fornisce l'identificatore di una proprietà di dipendenza per 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 le 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 DependencyPropertyKey nelle chiamate a SetValue e ClearValue che modificano il valore della proprietà come parte della logica di classe. Se consentito dal livello di accesso della chiave, le classi correlate possono usare anche 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.

La DependencyPropertyKey proprietà restituita dalla registrazione delle proprietà di sola lettura non deve essere resa pubblica, perché l'esposizione della chiave rende la proprietà impostata in modo da sconfiggere 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 relative implementazioni del wrapper delle proprietà Common Language Runtime (CLR), ovvero la progettazione di classi non valida.

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

Proprietà

DependencyProperty

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

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 l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(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à.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a

Vedi anche