为什么 ViewModels 需要实现 INotifyPropertyChanged 或使用 Dependency Pr



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

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

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

您需要 viewModel 使用这些选项之一,以便在属性值更改时通知视图。

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

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

首先:您根本不需要使用INotifyPropertyChangedDependencyObject

但是,这是使用绑定的中心点,在绑定,它正在侦听这些PropertyChanged事件并执行更新的视图,以防绑定的相关属性已更改。

以下是有关这方面的更多信息:

关于绑定如何工作

Pub Sub aka Publish Subscribe 模式

INotiyfyPropertyChanged - 我们在视图模型中使用的此属性,以便在 UI 中发生任何更改时,此属性将反映这些更改。

相关内容

  • 没有找到相关文章

最新更新