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 Bedingungen, für die sie registriert wurde. 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
erstellt, der einen Standardwert für eine DependencyProperty meldet. Wird PropertyMetadata
dann für eine angefügte Eigenschaftsregistrierung 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
instance 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 Abhängigkeitseigenschaftenverhaltens dar:
- Stellt einen Standardwert bereit, der als Wert der Eigenschaft verwendet wird, es sei denn, der Besitzertyp initialisiert den Wert ausdrücklich, 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 dann einen
PropertyMetadata
Wert, wenn eines oder beide dieser Verhaltensweisen gewünscht ist. Andernfalls kann ein Wert vonnull
für denpropertyMetadata
Parameter übergeben werden, wenn eine Abhängigkeitseigenschaft beim Abhängigkeitseigenschaftensystem registriert wird. Weitere Informationen finden Sie unter DependencyProperty.Register.
Wenn Sie PropertyMetadata
einen Rückrufverweis mit geänderter Eigenschaft enthält, muss es sich bei dieser Methode um eine statische Methode der -Klasse handeln, die den DependencyProperty-Bezeichner verfügbar macht, wo dieser PropertyMetadata
angewendet wird. Das Schreiben dieser Methode wird unter Benutzerdefinierte Abhängigkeitseigenschaften und auch im Referenzthema für den PropertyChangedCallback-Delegat beschrieben.
Hinweis
Nach der Erstellung verfügt ein PropertyMetadata
instance nicht über eine Eigenschaft, die zum Suchen des Rückrufs oder sogar zum Bestimmen des Methodennamens des Rückrufs verwendet werden kann. Diese Informationen gelten als Implementierungsdetails einer Abhängigkeitseigenschaft, und nur das Abhängigkeitseigenschaftensystem selbst muss diese Methode aufrufen können.
Instanziieren eines PropertyMetadata-Werts
Es gibt zwei Methoden, die eine PropertyMetadata
instance instanziieren können: einen Konstruktor und eine statische PropertyMetadata.Create-Methode. Jede dieser Methoden verfügt über mehrere Signaturen. Es ist üblicher, 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
PropertyMetadata(Object) |
Initialisiert eine neue instance der PropertyMetadata-Klasse unter Verwendung eines Eigenschaftsstandardwerts. |
PropertyMetadata(Object, PropertyChangedCallback) |
Initialisiert eine neue instance der PropertyMetadata-Klasse unter Verwendung eines Eigenschaftsstandardwerts und eines Rückrufverweiss. |
Eigenschaften
CreateDefaultValueCallback |
Ruft einen Verweis auf die Rückrufmethode ab, die einen Standardeigenschaftenwert bereitstellt. |
DefaultValue |
Ruft den Standardwert für die Abhängigkeitseigenschaft ab. |
Methoden
Create(CreateDefaultValueCallback) |
Erstellt einen PropertyMetadata-Wert , der einen Rückruf angibt, der einen Standardwert für eine Abhängigkeitseigenschaft festlegt. |
Create(CreateDefaultValueCallback, PropertyChangedCallback) |
Erstellt einen PropertyMetadata-Wert , der einen Rückruf angibt, der einen Standardwert für eine Abhängigkeitseigenschaft festlegt, und einen Rückruf, der die Eigenschaft geändert hat. |
Create(Object) |
Erstellt einen PropertyMetadata-Wert , der einen festen Standardwert für eine Abhängigkeitseigenschaft angibt. |
Create(Object, PropertyChangedCallback) |
Erstellt einen PropertyMetadata-Wert , der einen festen Standardwert für eine Abhängigkeitseigenschaft angibt, und einen Rückruf, der die Eigenschaft geändert hat. |