2

INotiyfyPropertyChanged我已经看过很多关于 MVVM-Patern 的教程,但是如果我想将信息从 ViewModel 发送回 View,我仍然不明白为什么我需要获取 Dependency-Property 或-Property。

4

3 回答 3

2

依赖属性在属性更改时提供内置更改通知,这意味着 WPF 知道控件值何时更改。

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

您需要您的 viewModel 使用这些选项中的任何一个,以便在属性值更改时可以通知视图。

这意味着如果在代码中更改了属性值,则用户界面会更新,并且如果用户输入更改了属性,则您的 viewModel(最终是您的模型)也会更新以反映这些更改。(基本上,绑定的双方都需要一种将属性更改相互通信的方式)。

界面是首选方法,因为这意味着您的INotifyPropertyChanged视图模型不是特定于 WPF 的,并且可以被其他用户界面技术使用。此外,依赖属性只能用于派生自DependencyObject.

于 2012-06-17T12:33:01.153 回答
1

第一:你不需要使用INotifyPropertyChanged或根本不需要DependencyObject

但是,这是使用 Binding 的中心点,在 Binding 中有一些 Pub / Sub 机制,它正在监听这些PropertyChanged事件并在 Binding 的相关属性发生变化时更新视图。

以下是有关此的更多信息:

SO关于绑定的工作原理

发布订阅又名发布订阅模式

于 2012-06-17T12:31:33.400 回答
0

INotiyfyPropertyChanged- 我们在视图模型中使用了这个属性,这样如果 UI 发生任何变化,这个属性就会反映这些变化。

于 2012-06-20T14:30:58.070 回答