Каковы отношения между INotifyPropertyChanged и DependencyProperty?

Мне нравится разбивать их по уровням, поэтому я отформатирую ваш пример следующим образом:

if (var1 = true
 && var2 = true
 && var2 = true
 && var3 = true
 && var4 = true
 && var5 = true
 && var6 = true){

Это удобно, когда у вас больше вложенности, как это (очевидно, реальные условия будут более интересными чем "= true" для всего):

if ((var1 = true && var2 = true)
 && ((var2 = true && var3 = true)
  && (var4 = true && var5 = true))
 && (var6 = true)){
6
задан Edward Tanguay 20 May 2009 в 10:24
поделиться

2 ответа

INotifyPropertyChanged - это интерфейс, который существует в .Net с 2.0. По сути, это позволяет объектам уведомлять об изменении свойства. При возникновении этого события заинтересованная сторона может выполнять определенные действия. Проблема в том, что он публикует только название собственности. Таким образом, вы в конечном итоге используете отражение или некоторые сомнительные операторы if, чтобы выяснить, что делать в обработчике.

DependencyProperties - более сложная конструкция, которая поддерживает значения по умолчанию, уведомления об изменениях более эффективным с точки зрения памяти и производительным способом.

Единственная связь заключается в том, что модель привязки WPF поддерживает привязку либо к DependencyProperties, либо к стандартным свойствам Clr с реализацией INotifyPropertyChanged.

9
ответ дан 9 December 2019 в 22:39
поделиться

Я действительно не думаю, что существует связь между DependencyProperties и INotifyPropertyChanged. Единственная магия здесь заключается в том, что классы / утилиты привязки достаточно умны, чтобы распознавать DependencyProperty и напрямую связываться с ним или подписываться на событие notify-property-changed цели привязки и ждать, пока это сработает.

2
ответ дан 9 December 2019 в 22:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: