Стоимость использования свойств зависимостей

Скажем, у меня есть элемент управления, который наследуется от UserControl (следовательно, один из его суперклассов — DependencyObject). Очень легко решить проблему уведомления с помощью DependencyProperty, поскольку INotifyPropertyChanged требует небольшой реализации, а другим вариантом будет создание метода для изменения состояния элемента управления (например, myControl.HideTextBox()). Я предполагаю, что есть еще несколько вариантов решения этой проблемы, но поскольку элемент управления уже наследуется от DependencyObject, DependencyProperty кажется более очевидным способом, но он может быть не оптимальным.

Любая мысль?

Спасибо!


person Carlo    schedule 29.07.2009    source источник


Ответы (1)


Настоящая особенность свойств зависимостей заключается не в том, что вы получаете уведомление об изменении бесплатно (хотя это и есть). Настоящая особенность заключается в том, что только свойства зависимостей могут быть целями привязки данных. Это то, что вы должны учитывать в первую очередь, когда решаете, должно ли свойство быть зависимостью или нет.

Для элемента управления почти все свойства должны быть привязываемыми и, следовательно, зависимыми.

person Pavel Minaev    schedule 29.07.2009
comment
Так что я немного запутался. Вы сказали, что это не настоящая особенность DependencyProperties, но вы сказали, что почти все свойства должны быть привязываемыми, следовательно, зависимость. Хорошо ли использовать их для моего примера или нет? - person Carlo; 30.07.2009
comment
Смотрите второй абзац моего ответа. Я не могу сказать больше, пока вы не расскажете больше о вашем контроле и собственности, в отношении которой вы сомневаетесь. Я бы также посоветовал посмотреть стандартные элементы управления WPF, чтобы увидеть, какие из их свойств являются зависимыми (вы обнаружите, что почти все они). - person Pavel Minaev; 30.07.2009