DependencyProperty.OverrideMetadata Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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í.
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.