Freigeben über


PropertyMetadata Klasse

Definition

Definiert Verhaltensaspekte einer Abhängigkeitseigenschaft, einschließlich der Bedingungen, mit denen sie registriert wurde. Weitere Informationen zur Verwendung von PropertyMetadata für Abhängigkeitseigenschaften finden Sie unter Benutzerdefinierte Abhängigkeitseigenschaften.

/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 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(Windows.Foundation.UniversalApiContract), 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
Object IInspectable PropertyMetadata
Attribute

Windows-Anforderungen

Gerätefamilie
Windows 10 (eingeführt in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (eingeführt in v1.0)

Beispiele

In diesem Beispiel wird der PropertyMetadata(Object)- Konstruktor aufgerufen, der ein PropertyMetadata-Objekt erstellt, das einen Standardwert für eine DependencyProperty meldet. 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);
    }
}
Public Class AquariumServices
    Inherits DependencyObject
    Public Enum Buoyancy
        Floats
        Sinks
        Drifts
    End Enum

    Public Shared ReadOnly BuoyancyProperty As DependencyProperty = _
          DependencyProperty.RegisterAttached(
          "Buoyancy", _
          GetType(Buoyancy), _
          GetType(AquariumServices), _
          New PropertyMetadata(Buoyancy.Floats))


    Public Sub SetBuoyancy(element As DependencyObject, value As Buoyancy)
        element.SetValue(BuoyancyProperty, value)
    End Sub
    Public Function GetBuoyancy(element As DependencyObject) As Buoyancy
        GetBuoyancy = CType(element.GetValue(BuoyancyProperty), Buoyancy)
    End Function
End Class

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 speziell, oder der Wert wird durch Benutzercode oder andere Mechanismen festgelegt.
  • Verweist auf einen Rückruf, der aufgerufen wird, wenn das Abhängigkeitseigenschaftensystem 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 beides dieser Verhaltensweisen gewünscht ist. Andernfalls kann der Wert NULL für den propertyMetadata-Parameter übergeben werden, wenn eine Abhängigkeitseigenschaft beim Abhängigkeitseigenschaftensystem registriert wird. Weitere Informationen finden Sie unter DependencyProperty.Register.

Wenn Ihre 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, an dem diese 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 verwendet werden kann, um den Rückruf zu finden oder sogar den Methodennamen des Rückrufs zu bestimmen. Diese Informationen werden als Implementierungsdetail einer Abhängigkeitseigenschaft betrachtet, 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ückrufverweis.

Eigenschaften

CreateDefaultValueCallback

Ruft einen Verweis auf die Rückrufmethode ab, die einen Standardeigenschaftswert 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 von der Eigenschaft geändert wurde.

Gilt für:

Weitere Informationen