DependencyProperty.OverrideMetadata Metoda

Definicja

Dostarcza alternatywne metadane dla tej właściwości zależności, gdy są obecne w wystąpieniach określonego typu, a metadane podane 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 są obecne 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 bazowych.

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, należy przekazać DependencyPropertyKey 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 są obecne 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 bazowych.

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 zostaną zastosowane 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 przed użyciem właściwości zależności przez system właściwości. Oznacza to czas tworzenia określonych wystąpień przy użyciu klasy, która rejestruje właściwość zależności. Wywołania do OverrideMetadata programu powinny być wykonywane tylko w konstruktorach statycznych typu, który udostępnia się jako forType parametr tej metody lub za pomocą 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ą wyjątek.

Podane metadane są scalane z metadanymi właściwości dla właściwości zależności, ponieważ istnieją w właścicielu podstawowym. 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 metadanych podstawowych. 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, należy przekazać DependencyPropertyKey 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 zostaną zastosowane 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). Jeśli zastąpisz metadane właściwości zależności read-write, użyj polecenia OverrideMetadata(Type, PropertyMetadata).

Metadane właściwości zależności powinny zostać zastąpione przed użyciem właściwości zależności przez system właściwości. Oznacza to czas tworzenia określonych obiektów dla klasy, która rejestruje właściwość zależności. Wywołania do OverrideMetadata programu powinny być wykonywane tylko w konstruktorach statycznych typu, który udostępnia się jako forType parametr tej metody lub za pomocą 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ą wyjątek.

Podane metadane są scalane z metadanymi właściwości dla właściwości zależności, ponieważ istnieją w właścicielu podstawowym. 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 metadanych podstawowych. 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