c# - "Soft updating"依赖属性?

标签 c# wpf mvvm dependency-properties inotifypropertychanged

我有一个 WPF 应用程序使用 INotifyPropertyChanged 来指示属性更新。我喜欢它的一点是,它使您能够在不调用所有 setter 代码的情况下发出属性更改信号。当您有两个相互更新的链接字段,或者当您有代码在每个 setter 上保存更改并且您不想多次触发保存,这实际上是用户的一次更改时,这很方便。

然而,这种方法的明显弱点是,属性名称中的错误或您向其发送通知的 View 模型中的错误会使您陷入困境,并且只会在运行时显示。

我查看了依赖属性,但找不到任何可以让您进行“软更新”的东西:让 UI 知道该属性已更改,但避免调用当 UI 导致更改时通常会运行的所有代码 View 模型。

有什么方法可以获得允许软更新并在编译时捕获通知问题的属性系统?

最佳答案

如果根本问题是属性名称错误,则有编译时解决方案,例如将“属性名称”参数设为表达式树而不是字符串。

http://michaelsync.net/2009/04/09/silverlightwpf-implementing-propertychanged-with-expression-tree

Caliburn.Micro库还在其 PropertyChangedBase 类中包含此方法。

关于c# - "Soft updating"依赖属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8159408/

相关文章:

c# - 最佳实践 bundle 产品版本控制(装配信息)

c# - NHibernate - 第一个查询非常慢

wpf - 如何访问位于 ControlTemplate 中的 WPF 控件?

c# - MVVM 最佳实践 : communication between view models

wpf - 如何在MVVM-WPF中的某个事件上激活新页面?

c# - 无法连接到远程 SQL Server Express Edition

c# - 如何让角色扮演游戏中的生物相互追踪

.net - 如何将 Win32 鼠标消息转换为 WPF 鼠标事件?

wpf - 如何自定义列系列中的列宽?

.net - WPF MVVM 中启动线程查找任务的正确方法