DependencyProperty.OverrideMetadata Metoda

Definice

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

Přetížení

Name Description
OverrideMetadata(Type, PropertyMetadata)

Určuje alternativní metadata pro tuto vlastnost závislosti, pokud je přítomna na instancích zadaného typu, přepsání metadat, 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ávislostí jen pro čtení, pokud je přítomna na instancích zadaného typu, přepsání metadat, která byla zadána v počáteční registraci vlastnosti závislosti. Aby se zabránilo vyvolání výjimky, musíte předat DependencyPropertyKey vlastnost závislosti jen pro čtení.

OverrideMetadata(Type, PropertyMetadata)

Určuje alternativní metadata pro tuto vlastnost závislosti, pokud je přítomna na instancích zadaného typu, přepsání metadat, 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, ve kterém je tato vlastnost závislosti zděděna a kde se použijí zadaná alternativní metadata.

typeMetadata
PropertyMetadata

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

Výjimky

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

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

Poznámky

Metadata vlastností závislostí by se měla přepsat před tím, než systém vlastností použije vlastnost závislosti. To odpovídá času, 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 výskytu instancí typu vlastníka nevyvolá výjimky, ale způsobí nekonzistentní chování v systému vlastností.

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

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

Platí pro

OverrideMetadata(Type, PropertyMetadata, DependencyPropertyKey)

Poskytuje alternativní metadata pro vlastnost závislostí jen pro čtení, pokud je přítomna na instancích zadaného typu, přepsání metadat, která byla zadána v počáteční registraci vlastnosti závislosti. Aby se zabránilo vyvolání výjimky, musíte předat DependencyPropertyKey vlastnost závislosti jen pro čtení.

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, ve kterém je tato vlastnost závislosti zděděna a kde se použijí zadaná alternativní metadata.

typeMetadata
PropertyMetadata

Metadata, která se mají použít u vlastnosti 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). Pokud přepisuje metadata pro vlastnost závislosti pro čtení i zápis, použijte OverrideMetadata(Type, PropertyMetadata).

Metadata vlastností závislostí by se měla přepsat před tím, než systém vlastností použije vlastnost závislosti. To odpovídá času, kdy jsou vytvořeny konkrétní objekty pro třídu, která registruje vlastnost závislostí. 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 výskytu instancí typu vlastníka nevyvolá výjimky, ale způsobí nekonzistentní chování v systému vlastností.

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

Zadaná metadata se sloučí s metadaty vlastností pro vlastnost závislosti, protože existuje na základního vlastníka. Všechny vlastnosti, které byly zadány v původních základních metadatech, budou zachovány; pouze ty vlastnosti, které byly konkrétně změněny v nových metadatech, přepíší charakteristiky základních metadat. Některé charakteristiky, jako DefaultValue jsou nahrazeny, pokud jsou zadány v nových metadatech. Jiné, například PropertyChangedCallback, jsou kombinovány. Chování při slučování 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í rozhraní.

Platí pro