INotiyfyPropertyChanged
我已经看过很多关于 MVVM-Patern 的教程,但是如果我想将信息从 ViewModel 发送回 View,我仍然不明白为什么我需要获取 Dependency-Property 或-Property。
3 回答
依赖属性在属性更改时提供内置更改通知,这意味着 WPF 知道控件值何时更改。
默认情况下,您的 ViewModel 类型不提供任何更改通知机制,因此如果它们不支持这些选项中的任何一个,视图应该如何知道您的 viewModel 中的属性何时更改?
您需要您的 viewModel 使用这些选项中的任何一个,以便在属性值更改时可以通知视图。
这意味着如果在代码中更改了属性值,则用户界面会更新,并且如果用户输入更改了属性,则您的 viewModel(最终是您的模型)也会更新以反映这些更改。(基本上,绑定的双方都需要一种将属性更改相互通信的方式)。
界面是首选方法,因为这意味着您的INotifyPropertyChanged
视图模型不是特定于 WPF 的,并且可以被其他用户界面技术使用。此外,依赖属性只能用于派生自DependencyObject
.
第一:你不需要使用INotifyPropertyChanged
或根本不需要DependencyObject
。
但是,这是使用 Binding 的中心点,在 Binding 中有一些 Pub / Sub 机制,它正在监听这些PropertyChanged
事件并在 Binding 的相关属性发生变化时更新视图。
以下是有关此的更多信息:
INotiyfyPropertyChanged
- 我们在视图模型中使用了这个属性,这样如果 UI 发生任何变化,这个属性就会反映这些变化。