PropertyMetadata Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Definiert Verhaltensaspekte einer Abhängigkeitseigenschaft, einschließlich der Bedingungen, bei der sie registriert wurden. Weitere Informationen zur PropertyMetadata Verwendung für Abhängigkeitseigenschaften finden Sie unter Benutzerdefinierte Abhängigkeitseigenschaften.
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class PropertyMetadata
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class PropertyMetadata
Public Class PropertyMetadata
- Vererbung
- Attribute
Beispiele
In diesem Beispiel wird der PropertyMetadata(Object) -Konstruktor aufgerufen, der einen PropertyMetadata Standardwert für eine DependencyProperty meldet. Die PropertyMetadata wird dann für eine Registrierung angefügter Eigenschaften verwendet, wenn RegisterAttached aufgerufen wird.
public abstract class AquariumServices : DependencyObject
{
public enum Buoyancy { Floats, Sinks, Drifts }
public static readonly DependencyProperty BuoyancyProperty = DependencyProperty.RegisterAttached(
"Buoyancy",
typeof(Buoyancy),
typeof(AquariumServices),
new PropertyMetadata(Buoyancy.Floats)
);
public static void SetBuoyancy(DependencyObject element, Buoyancy value)
{
element.SetValue(BuoyancyProperty, value);
}
public static Buoyancy GetBuoyancy(DependencyObject element)
{
return (Buoyancy)element.GetValue(BuoyancyProperty);
}
}
Hinweise
Das Definieren einer PropertyMetadata Instanz ist Teil des Szenarios zum Definieren einer benutzerdefinierten Abhängigkeitseigenschaft. Informationen und Beispiele finden Sie unter Benutzerdefinierte Abhängigkeitseigenschaften.
Ein PropertyMetadata Wert stellt zwei Aspekte des Verhaltens von Abhängigkeitseigenschaften dar:
- Stellt einen Standardwert bereit, der als Wert der Eigenschaft verwendet wird, es sei denn, der Besitzertyp initialisiert den Wert speziell, oder der Wert wird durch Benutzercode oder andere Mechanismen festgelegt.
- Verweist auf einen Rückruf, der aufgerufen wird, wenn das Abhängigkeitseigenschaftssystem erkennt, dass sich die Abhängigkeitseigenschaft geändert hat.
In der Regel benötigt eine Abhängigkeitseigenschaft nur einen
PropertyMetadataWert, wenn ein oder beide dieser Verhaltensweisen gewünscht sind. Andernfalls kann ein Wert fürnulldenpropertyMetadataParameter übergeben werden, wenn eine Abhängigkeitseigenschaft mit dem Abhängigkeitseigenschaftssystem registriert wird. Weitere Informationen finden Sie unter DependencyProperty.Register.
Wenn Ihre PropertyMetadata Methode einen Rückrufverweis mit Eigenschaftsänderung enthält, muss diese Methode eine statische Methode der Klasse sein, die den DependencyProperty-Bezeichner verfügbar macht, in dem dies PropertyMetadata angewendet wird. Das Schreiben dieser Methode wird in benutzerdefinierten Abhängigkeitseigenschaften und auch im Referenzthema für den PropertyChangedCallback-Delegaten beschrieben.
Hinweis
Nach der Erstellung verfügt eine PropertyMetadata Instanz nicht über eine Eigenschaft, die verwendet werden kann, um den Rückruf zu finden oder sogar den Methodennamen des Rückrufs zu ermitteln. Diese Informationen werden als Implementierungsdetail einer Abhängigkeitseigenschaft betrachtet, und nur das Abhängigkeitseigenschaftssystem selbst muss diese Methode aufrufen können.
Instanziieren eines PropertyMetadata-Werts
Es gibt zwei Methoden, die eine PropertyMetadata Instanz instanziieren können: einen Konstruktor und eine statische PropertyMetadata.Create-Methode . Jede dieser Methoden weist mehrere Signaturen auf. Es ist häufiger, die Konstruktoren zu verwenden. Sie müssen jedoch PropertyMetadata.Create verwenden, wenn der Standardwertmechanismus für Ihre Abhängigkeitseigenschaft threadsicher sein soll. Weitere Informationen finden Sie im Abschnitt "Eigenschaftenmetadaten für eine benutzerdefinierte Abhängigkeitseigenschaft" des Themas " Benutzerdefinierte Abhängigkeitseigenschaften" .
Konstruktoren
| Name | Beschreibung |
|---|---|
| PropertyMetadata(Object, PropertyChangedCallback) |
Initialisiert eine neue Instanz der PropertyMetadata-Klasse mithilfe eines Eigenschaftsstandardwerts und eines Rückrufverweises. |
| PropertyMetadata(Object) |
Initialisiert eine neue Instanz der PropertyMetadata-Klasse mithilfe eines Eigenschaftsstandardwerts. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| CreateDefaultValueCallback |
Ruft einen Verweis auf die Rückrufmethode ab, die einen Standardeigenschaftswert bereitstellt. |
| DefaultValue |
Ruft den Standardwert für die Abhängigkeitseigenschaft ab. |
Methoden
| Name | Beschreibung |
|---|---|
| Create(CreateDefaultValueCallback, PropertyChangedCallback) |
Erstellt einen PropertyMetadata-Wert , der einen Rückruf angibt, der einen Standardwert für eine Abhängigkeitseigenschaft und einen Rückruf mit Eigenschaftsänderung festlegt. |
| Create(CreateDefaultValueCallback) |
Erstellt einen PropertyMetadata-Wert , der einen Rückruf angibt, der einen Standardwert für eine Abhängigkeitseigenschaft festlegt. |
| Create(Object, PropertyChangedCallback) |
Erstellt einen PropertyMetadata-Wert , der einen festen Standardwert für eine Abhängigkeitseigenschaft und einen Rückruf mit Eigenschaftsänderung angibt. |
| Create(Object) |
Erstellt einen PropertyMetadata-Wert , der einen festen Standardwert für eine Abhängigkeitseigenschaft angibt. |