Kiedy należy używać FrameworkPropertyMetadata lub UIPropertyMetadata zamiast zwykłego PropertyMetadata?


82

Patrząc na próbki dołączone właściwości i zachowań Widziałem mishmash zastosowań FrameworkPropertyMetadata, UIPropertyMetadataa PropertyMetadata. Ponieważ wszystkie tworzą hierarchię dziedziczenia, jak wybrać, którego użyć?

Odpowiedzi:


81

Te klasy mają zgłaszać niektóre aspekty zachowania właściwości zależności.

Sprawdź różne klasy pod kątem dostępnych opcji.

Na przykład,

jeśli chcesz po prostu cofnąć właściwość o dp i podać wartość domyślną, użyj PropertyMetadata,

jeśli chcesz określić zachowanie animacji, użyj UIPropertyMetadata,

ale jeśli jakaś właściwość wpływa na elementy poziomu frameworka wpf, np. układ elementu, układ nadrzędny lub wiązanie danych, użyj FrameworkPropertyMetadata.

Szczegóły można sprawdzić na stronie msdn http://msdn.microsoft.com/en-us/library/ms751554.aspx


2
Prawdziwe pytanie brzmi: dlaczego fragment propdp używa UIPropertyMetadata, zwłaszcza że w Silverlight nie ma podklas PropertyMetadata? To mnie doprowadza do szału.
Grank

6
Dzieje się tak, ponieważ te same fragmenty są udostępniane między WPF i Silverlight. Możesz wypróbować różne fragmenty dla Silverlight z tego linku: blog.nerdplusart.com/archives/silverlight-code-snippets
gp.

2
MSDN mówi „Ogólnie rzecz biorąc, należy używać FrameworkPropertyMetadata, szczególnie jeśli Twoja właściwość ma jakąkolwiek interakcję z systemem właściwości i funkcjami WPF, takimi jak układ i powiązanie danych”. - (Określanie metadanych) msdn.microsoft.com/en-us/library/ms751554.aspx
Wayne Bloss

Do jakiego rodzaju powiązania danych należy używać FrameworkPropertyMetadata? Po prostu chcę mieć właściwość, która jest powiązana z IsEnabled kontrolki.
Monstieur
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.