DependencyProperty.OverrideMetadata Methode

Definition

Stellt alternative Metadaten für diese Abhängigkeitseigenschaft bereit, wenn sie in Instanzen eines angegebenen Typs vorhanden ist, im Gegensatz zu den Metadaten, die bei der ersten Registrierung der Abhängigkeitseigenschaft bereitgestellt wurden.

Überlädt

OverrideMetadata(Type, PropertyMetadata)

Gibt alternative Metadaten für diese Abhängigkeitseigenschaft an, wenn sie in Instanzen eines angegebenen Typs vorhanden ist. Dabei werden die Metadaten überschrieben, die für die Abhängigkeitseigenschaft bei der Vererbung von Basistypen vorhanden waren.

OverrideMetadata(Type, PropertyMetadata, DependencyPropertyKey)

Stellt alternative Metadaten für eine schreibgeschützte Abhängigkeitseigenschaft bereit, wenn sie in Instanzen eines angegebenen Typs vorhanden ist, wodurch die Metadaten überschrieben werden, die bei der ersten Registrierung der Abhängigkeitseigenschaft bereitgestellt wurden. Sie müssen die DependencyPropertyKey für die schreibgeschützte Abhängigkeitseigenschaft übergeben, um das Auslösen einer Ausnahme zu vermeiden.

OverrideMetadata(Type, PropertyMetadata)

Gibt alternative Metadaten für diese Abhängigkeitseigenschaft an, wenn sie in Instanzen eines angegebenen Typs vorhanden ist. Dabei werden die Metadaten überschrieben, die für die Abhängigkeitseigenschaft bei der Vererbung von Basistypen vorhanden waren.

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)

Parameter

forType
Type

Der Typ, bei dem diese Abhängigkeitseigenschaft geerbt wird und bei dem die bereitgestellten alternativen Metadaten angewendet werden.

typeMetadata
PropertyMetadata

Die Metadaten, die auf die Abhängigkeitseigenschaft im überschreibenden Typ angewendet werden sollen.

Ausnahmen

Es wurde versucht, die Metadaten für eine schreibgeschützte Abhängigkeitseigenschaft zu überschreiben (dieser Vorgang kann nicht mit dieser Signatur ausgeführt werden).

Metadaten wurden für die Abhängigkeitseigenschaft bereits festgelegt, wie im bereitgestellten Typ vorhanden.

Hinweise

Die Metadaten der Abhängigkeitseigenschaft sollten überschrieben werden, bevor das Eigenschaftensystem die Abhängigkeitseigenschaft verwendet. Dies entspricht dem Zeitpunkt, zu dem bestimmte Instanzen mithilfe der -Klasse erstellt werden, die die Abhängigkeitseigenschaft registriert. Aufrufe von OverrideMetadata sollten nur innerhalb der statischen Konstruktoren des Typs ausgeführt werden, der forType sich selbst als Parameter dieser Methode bereitstellt, oder über eine ähnliche Instanziierung. Der Versuch, Metadaten zu ändern, nachdem Instanzen des Besitzertyps vorhanden sind, löst keine Ausnahmen aus, führt jedoch zu inkonsistenten Verhaltensweisen im Eigenschaftensystem.

Nachdem Metadaten für eine bestimmte abgeleitete Klassenüberschreibung mit dieser Methode eingerichtet wurden, lösen nachfolgende Versuche, Metadaten für dieselbe abgeleitete Klasse zu überschreiben, eine Ausnahme aus.

Die angegebenen Metadaten werden mit den Eigenschaftenmetadaten für die Abhängigkeitseigenschaft zusammengeführt, da sie auf dem Basisbesitzer vorhanden sind. Alle Merkmale, die in den ursprünglichen Basismetadaten angegeben wurden, bleiben erhalten. nur die Merkmale, die in den neuen Metadaten speziell geändert wurden, überschreiben die Merkmale der Basismetadaten. Einige Merkmale wie DefaultValue z. B. werden ersetzt, wenn sie in den neuen Metadaten angegeben sind. Andere, z. B PropertyChangedCallback. , werden kombiniert. Letztendlich hängt das Mergeverhalten vom Eigenschaftenmetadatentyp ab, der für die Überschreibung verwendet wird, sodass das hier beschriebene Verhalten für die vorhandenen Eigenschaftsmetadatenklassen gilt, die von WPF-Abhängigkeitseigenschaften verwendet werden. Ausführliche Informationen finden Sie unter Metadaten für Abhängigkeitseigenschaften und Frameworkeigenschaften.

Gilt für:

OverrideMetadata(Type, PropertyMetadata, DependencyPropertyKey)

Stellt alternative Metadaten für eine schreibgeschützte Abhängigkeitseigenschaft bereit, wenn sie in Instanzen eines angegebenen Typs vorhanden ist, wodurch die Metadaten überschrieben werden, die bei der ersten Registrierung der Abhängigkeitseigenschaft bereitgestellt wurden. Sie müssen die DependencyPropertyKey für die schreibgeschützte Abhängigkeitseigenschaft übergeben, um das Auslösen einer Ausnahme zu vermeiden.

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)

Parameter

forType
Type

Der Typ, bei dem diese Abhängigkeitseigenschaft geerbt wird und bei dem die bereitgestellten alternativen Metadaten angewendet werden.

typeMetadata
PropertyMetadata

Die Metadaten, die auf die Abhängigkeitseigenschaft im überschreibenden Typ angewendet werden sollen.

key
DependencyPropertyKey

Der Zugriffsschlüssel für eine schreibgeschützte Abhängigkeitseigenschaft.

Hinweise

Diese Signatur stellt die zugrunde liegende Implementierung für eine schreibgeschützte Abhängigkeitseigenschaftsbezeichnermethode (DependencyPropertyKey) bereit. Wenn Metadaten für eine Abhängigkeitseigenschaft mit Lese-/Schreibzugriff überschrieben werden, verwenden Sie OverrideMetadata(Type, PropertyMetadata).

Die Metadaten der Abhängigkeitseigenschaft sollten überschrieben werden, bevor das Eigenschaftensystem die Abhängigkeitseigenschaft verwendet. Dies entspricht dem Zeitpunkt, zu dem bestimmte Objekte für die Klasse erstellt werden, die die Abhängigkeitseigenschaft registriert. Aufrufe von OverrideMetadata sollten nur innerhalb der statischen Konstruktoren des Typs ausgeführt werden, der forType sich selbst als Parameter dieser Methode bereitstellt, oder über eine ähnliche Instanziierung. Der Versuch, Metadaten zu ändern, nachdem Instanzen des Besitzertyps vorhanden sind, löst keine Ausnahmen aus, führt jedoch zu inkonsistenten Verhaltensweisen im Eigenschaftensystem.

Nachdem Metadaten für eine bestimmte abgeleitete Klassenüberschreibung mit dieser Methode eingerichtet wurden, lösen nachfolgende Versuche, Metadaten für dieselbe abgeleitete Klasse zu überschreiben, eine Ausnahme aus.

Die angegebenen Metadaten werden mit den Eigenschaftenmetadaten für die Abhängigkeitseigenschaft zusammengeführt, da sie auf dem Basisbesitzer vorhanden sind. Alle Merkmale, die in den ursprünglichen Basismetadaten angegeben wurden, bleiben erhalten. nur die Merkmale, die in den neuen Metadaten speziell geändert wurden, überschreiben die Merkmale der Basismetadaten. Einige Merkmale wie DefaultValue z. B. werden ersetzt, wenn sie in den neuen Metadaten angegeben sind. Andere, z. B PropertyChangedCallback. , werden kombiniert. Das Mergeverhalten hängt vom Eigenschaftenmetadatentyp ab, der für die Überschreibung verwendet wird. Ausführliche Informationen finden Sie unter Metadaten für Abhängigkeitseigenschaften und Frameworkeigenschaften.

Gilt für: