回答

2

依赖属性提供内置的变化通知时,属性更改,这意味着WPF知道当一个控件的值发生了变化。

默认情况下,您的ViewModel类型不会提供更改通知的任何机制,因此如果它们不支持这两个选项中的任何一个,视图应如何知道viewModel中的属性何时发生更改?

你需要你的视图模型使用这些选项,这样的观点可以当一个属性值发生变化的通知。

这意味着如果一个属性值在代码改变时,用户界面被更新,并且如果属性是由用户输入改变了你的视图模型(并且最终模型)也被更新,以反映这些改变。 (基本上,绑定的双方都需要将对方的属性更改进行通信)。

INotifyPropertyChanged接口是首选方法,因为它意味着您的viewModel不是特定于WPF的,并且可以被其他用户界面技术使用。此外,依赖项属性只能用于从DependencyObject派生的类型。

1

第一:你并不需要使用INotifyPropertyChangedDependencyObject的。

但是,这是在使用绑定的中心点,有在 一些发布/订阅机制的结合,这是听那些PropertyChanged事件和情况做了更新 视图的相关属性绑定已经改变。

这里是更多的信息:

SO on how binding works

Pub Sub aka Publish Subscribe Pattern

0

INotiyfyPropertyChanged - 我们在视图模型中使用,以便在出现在用户界面中发生的任何变化,此属性将反映这些变化这个属性。