Udostępnij za pośrednictwem


DependencyProperty.OverrideMetadata Metoda

Definicja

Dostarcza alternatywne metadane dla tej właściwości zależności, gdy jest obecny w wystąpieniach określonego typu, w porównaniu z metadanymi podanymi w początkowej rejestracji właściwości zależności.

Przeciążenia

OverrideMetadata(Type, PropertyMetadata)

Określa alternatywne metadane dla tej właściwości zależności, gdy jest obecny w wystąpieniach określonego typu, przesłaniając metadane, które istniały dla właściwości zależności, ponieważ były dziedziczone z typów podstawowych.

OverrideMetadata(Type, PropertyMetadata, DependencyPropertyKey)

Dostarcza alternatywne metadane dla właściwości zależności tylko do odczytu, gdy jest obecny w wystąpieniach określonego typu, przesłaniając metadane podane w początkowej rejestracji właściwości zależności. Aby uniknąć zgłaszania wyjątku DependencyPropertyKey , należy przekazać właściwość zależności tylko do odczytu.

OverrideMetadata(Type, PropertyMetadata)

Określa alternatywne metadane dla tej właściwości zależności, gdy jest obecny w wystąpieniach określonego typu, przesłaniając metadane, które istniały dla właściwości zależności, ponieważ były dziedziczone z typów podstawowych.

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, w którym ta właściwość zależności jest dziedziczona i gdzie będą stosowane podane alternatywne metadane.

typeMetadata
PropertyMetadata

Metadane, które mają być stosowane do właściwości zależności w typie zastępowania.

Wyjątki

Podjęto próbę zastąpienia metadanych we właściwości zależności tylko do odczytu (tej operacji nie można wykonać przy użyciu tego podpisu).

Metadane zostały już ustanowione dla właściwości zależności, ponieważ istnieje w podanym typie.

Uwagi

Metadane właściwości zależności powinny zostać zastąpione, zanim system właściwości używa właściwości zależności. Jest to równoznaczne z czasem utworzenia określonych wystąpień przy użyciu klasy, która rejestruje właściwość zależności. Wywołania metody OverrideMetadata do powinny być wykonywane tylko w konstruktorach statycznych typu, który podaje się jako forType parametr tej metody lub za pośrednictwem podobnego wystąpienia. Próba zmiany metadanych po wystąpieniu typu właściciela nie będzie zgłaszać wyjątków, ale spowoduje niespójne zachowania w systemie właściwości.

Po ustanowieniu metadanych dla określonej klasy pochodnej za pomocą tej metody kolejne próby zastąpienia metadanych w tej samej klasie pochodnej spowodują wystąpienie wyjątku.

Podane metadane są scalane z metadanymi właściwości właściwości dla właściwości zależności, ponieważ istnieje ona u właściciela podstawowego. Wszelkie cechy określone w oryginalnych metadanych podstawowych będą utrwalane; tylko te cechy, które zostały specjalnie zmienione w nowych metadanych, zastąpią cechy podstawowych metadanych. Niektóre cechy, takie jak DefaultValue , są zastępowane, jeśli określono je w nowych metadanych. Inne, takie jak PropertyChangedCallback, są łączone. Ostatecznie zachowanie scalania zależy od typu metadanych właściwości używanego do zastąpienia, więc zachowanie opisane tutaj dotyczy istniejących klas metadanych właściwości używanych przez właściwości zależności WPF. Aby uzyskać szczegółowe informacje, zobacz Metadane właściwości zależności i metadane właściwości struktury.

Dotyczy

OverrideMetadata(Type, PropertyMetadata, DependencyPropertyKey)

Dostarcza alternatywne metadane dla właściwości zależności tylko do odczytu, gdy jest obecny w wystąpieniach określonego typu, przesłaniając metadane podane w początkowej rejestracji właściwości zależności. Aby uniknąć zgłaszania wyjątku DependencyPropertyKey , należy przekazać właściwość zależności tylko do odczytu.

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, w którym ta właściwość zależności jest dziedziczona i gdzie będą stosowane podane alternatywne metadane.

typeMetadata
PropertyMetadata

Metadane, które mają być stosowane do właściwości zależności w typie zastępowania.

key
DependencyPropertyKey

Klucz dostępu dla właściwości zależności tylko do odczytu.

Uwagi

Ten podpis zapewnia podstawową implementację metody właściwości zależności tylko do odczytu (DependencyPropertyKey). W przypadku zastępowania metadanych dla właściwości zależności odczytu i zapisu użyj polecenia OverrideMetadata(Type, PropertyMetadata).

Metadane właściwości zależności powinny zostać zastąpione, zanim system właściwości używa właściwości zależności. Jest to równoznaczne z czasem utworzenia określonych obiektów dla klasy, która rejestruje właściwość zależności. Wywołania metody OverrideMetadata do powinny być wykonywane tylko w konstruktorach statycznych typu, który podaje się jako forType parametr tej metody lub za pośrednictwem podobnego wystąpienia. Próba zmiany metadanych po wystąpieniu typu właściciela nie będzie zgłaszać wyjątków, ale spowoduje niespójne zachowania w systemie właściwości.

Po ustanowieniu metadanych dla określonej klasy pochodnej za pomocą tej metody kolejne próby zastąpienia metadanych w tej samej klasie pochodnej spowodują wystąpienie wyjątku.

Podane metadane są scalane z metadanymi właściwości właściwości dla właściwości zależności, ponieważ istnieje ona u właściciela podstawowego. Wszelkie cechy określone w oryginalnych metadanych podstawowych będą utrwalane; tylko te cechy, które zostały specjalnie zmienione w nowych metadanych, zastąpią cechy podstawowych metadanych. Niektóre cechy, takie jak DefaultValue , są zastępowane, jeśli określono je w nowych metadanych. Inne, takie jak PropertyChangedCallback, są łączone. Zachowanie scalania zależy od typu metadanych właściwości używanego do zastąpienia. Aby uzyskać szczegółowe informacje, zobacz Metadane właściwości zależności i metadane właściwości struktury.

Dotyczy