wpf - 为什么 ViewModel 需要实现 INotifyPropertyChanged 或使用依赖属性?

标签 wpf mvvm viewmodel dependency-properties inotifypropertychanged

我已经看过很多关于 MVVM-Patern 的教程,但我仍然不明白为什么我需要获取依赖属性或 INotiyfyPropertyChanged-Property 如果我想从ViewModel 返回到 View。

最佳答案

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

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

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

这意味着如果代码中的属性值发生更改,用户界面也会更新,如果用户输入更改属性,您的 viewModel(最终是您的模型)也会更新以反射(reflect)这些更改。 (基本上,绑定(bind)的双方都需要一种相互传达属性更改的方式)。

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

关于wpf - 为什么 ViewModel 需要实现 INotifyPropertyChanged 或使用依赖属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11071284/

相关文章:

c# - 依赖属性优化?

c# - 如何在 C# 中通过字符串调用构造函数(即通过反射)?

asp.net-mvc - 以列表形式显示 View 中多个表中的数据-ASP.Net MVC

android - 使用 MVVM 改造

c# - 关闭 View 会将 ViewModel 的属性设置为 null

asp.net-mvc-3 - MVC : Repository and Viewmodels both pattern together for better structure?

c# - MVVM ViewModel 到模型通信和参数

WPF 重复图像背景

.net - WPF 中的动态向导

wpf - 关注 xaml 或 ViewModel 中的一行