Глядя на примеры прикрепленных свойств и поведений, я увидел мешанину использования FrameworkPropertyMetadata
, UIPropertyMetadata
и PropertyMetadata
. Поскольку все они образуют иерархию наследования, как мне выбрать, какой из них использовать?
Когда следует использовать FrameworkPropertyMetadata или UIPropertyMetadata вместо простых PropertyMetadata?
Ответы (1)
Эти классы должны сообщать о некоторых аспектах поведения свойства зависимостей.
Проверьте различные классы на наличие опций, которые они предоставляют.
Например,
если вы просто хотите поддержать свойство с помощью dp и указать значение по умолчанию, используйте PropertyMetadata
,
если вы хотите указать поведение анимации, используйте UIPropertyMetadata
,
но если какое-то свойство влияет на уровень инфраструктуры wpf, например макет элемента, родительский макет или привязку данных, используйте FrameworkPropertyMetadata
.
Подробности вы можете проверить на msdn http://msdn.microsoft.com/en-us/library/ms751554.aspx
person
gp.
schedule
21.03.2010
Настоящий вопрос заключается в том, почему фрагмент кода propdp использует UIPropertyMetadata, тем более что в Silverlight нет подклассов PropertyMetadata? Это сводит меня с ума.
- person Grank; 30.06.2010
Это связано с тем, что одни и те же фрагменты используются в WPF и Silverlight. Вы можете попробовать различные фрагменты для Silverlight по этой ссылке: blog.nerdplusart.com/archives/silverlight -фрагменты кода
- person gp.; 08.07.2010
MSDN говорит, что в целом вам следует использовать FrameworkPropertyMetadata, особенно если ваше свойство имеет какое-либо взаимодействие с системой свойств и функциями WPF, такими как макет и привязка данных. - (Указание метаданных) msdn.microsoft.com/en-us/library/ms751554 .aspx
- person Wayne Bloss; 28.10.2011
Для какой привязки данных следует использовать FrameworkPropertyMetadata? Мне просто нужно свойство, привязанное к IsEnabled элемента управления.
- person Monstieur; 04.06.2013