Wann sollte ich FrameworkPropertyMetadata oder UIPropertyMetadata über einfache PropertyMetadata verwenden?


81

Wenn bei Probe angefügten Eigenschaften und Verhaltensweisen suchen, habe ich ein Mischmasch von Verwendungen gesehen FrameworkPropertyMetadata, UIPropertyMetadataund PropertyMetadata. Wie wähle ich die zu verwendende aus, da sie alle eine Vererbungshierarchie bilden?

Antworten:


80

Diese Klassen sollen einige Verhaltensaspekte einer Abhängigkeitseigenschaft melden.

Überprüfen Sie die verschiedenen Klassen auf die angebotenen Optionen.

Beispielsweise,

Wenn Sie nur eine Eigenschaft mit dp sichern und einen Standardwert angeben möchten, verwenden Sie PropertyMetadata,

Wenn Sie das Animationsverhalten angeben möchten, verwenden Sie UIPropertyMetadata,

Wenn sich jedoch eine Eigenschaft auf Dinge auf wpf-Framework-Ebene auswirkt, z. B. Elementlayout, übergeordnetes Layout oder Datenbindung, verwenden Sie FrameworkPropertyMetadata.

Details können Sie auf msdn http://msdn.microsoft.com/en-us/library/ms751554.aspx überprüfen


2
Die eigentliche Frage ist, warum das Propdp-Snippet UIPropertyMetadata verwendet, zumal es in Silverlight keine PropertyMetadata-Unterklassen gibt. Es macht mich verrückt.
Grank

6
Dies liegt daran, dass WPF und Silverlight dieselben Snippets gemeinsam nutzen. Über diesen Link können Sie verschiedene Snippets für Silverlight
gp.

2
In MSDN heißt es: "Im Allgemeinen sollten Sie FrameworkPropertyMetadata verwenden, insbesondere wenn Ihre Eigenschaft mit dem Eigenschaftssystem und WPF-Funktionen wie Layout und Datenbindung interagiert." - (Angabe von Metadaten) msdn.microsoft.com/en-us/library/ms751554.aspx
Wayne Bloss

Für welche Art von Datenbindung sollte FrameworkPropertyMetadata verwendet werden? Ich möchte einfach eine Eigenschaft, die an IsEnabled eines Steuerelements gebunden ist.
Monstieur
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.