DependencyProperty.OverrideMetadata Metoda

Definice

Poskytuje alternativní metadata pro tuto vlastnost závislosti, pokud je přítomna na instancích zadaného typu, oproti metadatům, která byla zadána při počáteční registraci vlastnosti závislosti.

Přetížení

OverrideMetadata(Type, PropertyMetadata)

Určuje alternativní metadata pro tuto vlastnost závislosti, pokud se nachází na instancích zadaného typu, a přepisuje metadata, která existovala pro vlastnost závislosti, protože byla zděděna ze základních typů.

OverrideMetadata(Type, PropertyMetadata, DependencyPropertyKey)

Poskytuje alternativní metadata pro vlastnost závislosti jen pro čtení, pokud je přítomen na instancích zadaného typu, přepisuje metadata, která byla zadána při počáteční registraci vlastnosti závislosti. Musíte předat DependencyPropertyKey vlastnost závislosti jen pro čtení, abyste zabránili vyvolání výjimky.

OverrideMetadata(Type, PropertyMetadata)

Určuje alternativní metadata pro tuto vlastnost závislosti, pokud se nachází na instancích zadaného typu, a přepisuje metadata, která existovala pro vlastnost závislosti, protože byla zděděna ze základních typů.

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)

Parametry

forType
Type

Typ, kde je tato vlastnost závislosti zděděna a kde budou použita poskytnutá alternativní metadata.

typeMetadata
PropertyMetadata

Metadata, která se mají použít na vlastnost závislosti na typu přepsání.

Výjimky

Došlo k pokusu o přepsání metadat ve vlastnosti závislosti jen pro čtení (tuto operaci nelze pomocí tohoto podpisu provést).

Metadata pro vlastnost závislosti již byla vytvořena, protože existuje na zadaném typu.

Poznámky

Metadata vlastností závislostí by měla být přepsána dříve, než systém vlastností použije vlastnost závislosti. To odpovídá době, kdy jsou vytvořeny konkrétní instance pomocí třídy, která registruje vlastnost závislosti. OverrideMetadata Volání by měla být provedena pouze v rámci statických konstruktorů typu, který poskytuje sám sebe jako forType parametr této metody, nebo prostřednictvím podobné instance. Pokus o změnu metadat po existenci instancí typu vlastníka nevyvolá výjimky, ale bude mít za následek nekonzistentní chování v systému vlastností.

Po vytvoření metadat pro konkrétní přepsání odvozené třídy pomocí této metody budou následné pokusy o přepsání metadat v této odvozené třídě vyvolá výjimku.

Zadaná metadata se sloučí s metadaty vlastnosti závislosti, protože existuje u základního vlastníka. Všechny vlastnosti, které byly zadány v původních základních metadatech, budou zachovány; Pouze vlastnosti, které byly v nových metadatech konkrétně změněny, přepíší charakteristiky základních metadat. Některé vlastnosti, například DefaultValue , jsou nahrazeny, pokud jsou zadány v nových metadatech. Jiné, například PropertyChangedCallback, se kombinují. Nakonec chování při sloučení závisí na typu metadat vlastnosti, který se používá pro přepsání, takže zde popsané chování je pro existující třídy metadat vlastností používané vlastnostmi závislostí vlastnosti vlastnosti. Podrobnosti najdete v tématu Metadata vlastností závislostí a Metadata vlastností architektury.

Platí pro

OverrideMetadata(Type, PropertyMetadata, DependencyPropertyKey)

Poskytuje alternativní metadata pro vlastnost závislosti jen pro čtení, pokud je přítomen na instancích zadaného typu, přepisuje metadata, která byla zadána při počáteční registraci vlastnosti závislosti. Musíte předat DependencyPropertyKey vlastnost závislosti jen pro čtení, abyste zabránili vyvolání výjimky.

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)

Parametry

forType
Type

Typ, kde je tato vlastnost závislosti zděděna a kde budou použita poskytnutá alternativní metadata.

typeMetadata
PropertyMetadata

Metadata, která se mají použít na vlastnost závislosti na typu přepsání.

key
DependencyPropertyKey

Přístupový klíč pro vlastnost závislosti jen pro čtení.

Poznámky

Tento podpis poskytuje základní implementaci pro metodu identifikátoru vlastnosti závislosti jen pro čtení (DependencyPropertyKey). Při přepsání metadat pro vlastnost závislosti pro čtení i zápis použijte OverrideMetadata(Type, PropertyMetadata).

Metadata vlastností závislostí by měla být přepsána dříve, než systém vlastností použije vlastnost závislosti. To odpovídá době, kdy jsou vytvořeny konkrétní objekty pro třídu, která registruje vlastnost závislosti. OverrideMetadata Volání by měla být provedena pouze v rámci statických konstruktorů typu, který poskytuje sám sebe jako forType parametr této metody, nebo prostřednictvím podobné instance. Pokus o změnu metadat po existenci instancí typu vlastníka nevyvolá výjimky, ale bude mít za následek nekonzistentní chování v systému vlastností.

Po vytvoření metadat pro konkrétní přepsání odvozené třídy pomocí této metody budou následné pokusy o přepsání metadat v této odvozené třídě vyvolá výjimku.

Zadaná metadata se sloučí s metadaty vlastnosti závislosti, protože existuje u základního vlastníka. Všechny vlastnosti, které byly zadány v původních základních metadatech, budou zachovány; Pouze vlastnosti, které byly v nových metadatech konkrétně změněny, přepíší charakteristiky základních metadat. Některé vlastnosti, například DefaultValue , jsou nahrazeny, pokud jsou zadány v nových metadatech. Jiné, například PropertyChangedCallback, se kombinují. Chování při sloučení závisí na typu metadat vlastnosti, který se používá pro přepsání. Podrobnosti najdete v tématu Metadata vlastností závislostí a Metadata vlastností architektury.

Platí pro