DependencyProperty.OverrideMetadata Metodo

Definizione

Specifica i metadati alternativi per questa proprietà di dipendenza quando è presente nelle istanze di un tipo specificato, rispetto ai metadati specificati nella registrazione della proprietà di dipendenza originale.

Overload

OverrideMetadata(Type, PropertyMetadata)

Specifica i metadati alternativi per questa proprietà di dipendenza quando è presente nelle istanze di un tipo specificato, eseguendo l'override dei metadati esistenti per la proprietà di dipendenza quando è stata ereditata dai tipi di base.

OverrideMetadata(Type, PropertyMetadata, DependencyPropertyKey)

Specifica i metadati alternativi per una proprietà di dipendenza di sola lettura quando è presente nelle istanze di un tipo specificato, in sostituzione dei metadati specificati nella registrazione della proprietà di dipendenza iniziale. È necessario passare DependencyPropertyKey per la proprietà di dipendenza di sola lettura per evitare la generazione di un'eccezione.

OverrideMetadata(Type, PropertyMetadata)

Specifica i metadati alternativi per questa proprietà di dipendenza quando è presente nelle istanze di un tipo specificato, eseguendo l'override dei metadati esistenti per la proprietà di dipendenza quando è stata ereditata dai tipi di base.

public:
 void OverrideMetadata(Type ^ forType, System::Windows::PropertyMetadata ^ typeMetadata);
public void OverrideMetadata (Type forType, System.Windows.PropertyMetadata typeMetadata);
member this.OverrideMetadata : Type * System.Windows.PropertyMetadata -> unit
Public Sub OverrideMetadata (forType As Type, typeMetadata As PropertyMetadata)

Parametri

forType
Type

Tipo in cui questa proprietà di dipendenza viene ereditata e in cui verranno applicati i metadati alternativi.

typeMetadata
PropertyMetadata

Metadati da applicare alla proprietà di dipendenza nel tipo che esegue l'override.

Eccezioni

Si è tentato di eseguire l'override dei metadati in una proprietà di dipendenza di sola lettura. Tale operazione non può essere eseguita usando questa firma.

I metadati sono già stati stabiliti per la proprietà di dipendenza nello stato attuale per il tipo specificato.

Commenti

È necessario eseguire l'override dei metadati delle proprietà di dipendenza prima che il sistema di proprietà usi la proprietà di dipendenza. Ciò equivale al momento in cui vengono create istanze specifiche usando la classe che registra la proprietà di dipendenza. Le chiamate a OverrideMetadata devono essere eseguite solo all'interno dei costruttori statici del tipo che fornisce se stesso come forType parametro di questo metodo o tramite un'istanza simile. Il tentativo di modificare i metadati dopo l'esistenza di istanze del tipo di proprietario non genererà eccezioni, ma causerà comportamenti incoerenti nel sistema di proprietà.

Dopo che i metadati per una determinata sostituzione di classe derivata vengono stabiliti con questo metodo, i tentativi successivi di eseguire l'override dei metadati in questa stessa classe derivata genereranno un'eccezione.

I metadati forniti vengono uniti con i metadati della proprietà per la proprietà di dipendenza così come sono presenti nel proprietario di base. Tutte le caratteristiche specificate nei metadati di base originali verranno mantenute; solo le caratteristiche che sono state modificate in modo specifico nei nuovi metadati sostituiranno le caratteristiche dei metadati di base. Alcune caratteristiche, DefaultValue ad esempio, vengono sostituite se specificate nei nuovi metadati. Altri, ad esempio PropertyChangedCallback, vengono combinati. In definitiva, il comportamento di merge dipende dal tipo di metadati della proprietà usato per l'override, quindi il comportamento descritto di seguito è relativo alle classi di metadati delle proprietà esistenti usate dalle proprietà di dipendenza WPF. Per informazioni dettagliate, vedere Metadati delle proprietà di dipendenza e Metadati delle proprietà del framework.

Si applica a

OverrideMetadata(Type, PropertyMetadata, DependencyPropertyKey)

Specifica i metadati alternativi per una proprietà di dipendenza di sola lettura quando è presente nelle istanze di un tipo specificato, in sostituzione dei metadati specificati nella registrazione della proprietà di dipendenza iniziale. È necessario passare DependencyPropertyKey per la proprietà di dipendenza di sola lettura per evitare la generazione di un'eccezione.

public:
 void OverrideMetadata(Type ^ forType, System::Windows::PropertyMetadata ^ typeMetadata, System::Windows::DependencyPropertyKey ^ key);
public void OverrideMetadata (Type forType, System.Windows.PropertyMetadata typeMetadata, System.Windows.DependencyPropertyKey key);
member this.OverrideMetadata : Type * System.Windows.PropertyMetadata * System.Windows.DependencyPropertyKey -> unit
Public Sub OverrideMetadata (forType As Type, typeMetadata As PropertyMetadata, key As DependencyPropertyKey)

Parametri

forType
Type

Tipo in cui questa proprietà di dipendenza viene ereditata e in cui verranno applicati i metadati alternativi.

typeMetadata
PropertyMetadata

Metadati da applicare alla proprietà di dipendenza nel tipo che esegue l'override.

key
DependencyPropertyKey

Chiave di accesso per una proprietà di dipendenza di sola lettura.

Commenti

Questa firma fornisce l'implementazione sottostante per un metodo di identificatore di proprietà di dipendenza di sola lettura (DependencyPropertyKey). Se si esegue l'override dei metadati per una proprietà di dipendenza di lettura/scrittura, usare OverrideMetadata(Type, PropertyMetadata).

È necessario eseguire l'override dei metadati delle proprietà di dipendenza prima che il sistema di proprietà usi la proprietà di dipendenza. Ciò equivale al momento in cui vengono creati oggetti specifici per la classe che registra la proprietà di dipendenza. Le chiamate a OverrideMetadata devono essere eseguite solo all'interno dei costruttori statici del tipo che fornisce se stesso come forType parametro di questo metodo o tramite un'istanza simile. Il tentativo di modificare i metadati dopo l'esistenza di istanze del tipo di proprietario non genererà eccezioni, ma causerà comportamenti incoerenti nel sistema di proprietà.

Dopo che i metadati per una determinata sostituzione di classe derivata vengono stabiliti con questo metodo, i tentativi successivi di eseguire l'override dei metadati in questa stessa classe derivata genereranno un'eccezione.

I metadati forniti vengono uniti con i metadati della proprietà per la proprietà di dipendenza così come sono presenti nel proprietario di base. Tutte le caratteristiche specificate nei metadati di base originali verranno mantenute; solo le caratteristiche che sono state modificate in modo specifico nei nuovi metadati sostituiranno le caratteristiche dei metadati di base. Alcune caratteristiche, DefaultValue ad esempio, vengono sostituite se specificate nei nuovi metadati. Altri, ad esempio PropertyChangedCallback, vengono combinati. Il comportamento di merge dipende dal tipo di metadati della proprietà utilizzato per l'override. Per informazioni dettagliate, vedere Metadati delle proprietà di dipendenza e Metadati delle proprietà del framework.

Si applica a