首页 > 解决方案 > WPF 监视属性更改

问题描述

我经常有以下任务:

我有一个对象集合(fe 客户),并希望为用户提供这些对象的编辑器。通常我在编辑器的左侧有一些列表控件,在右侧有一个表单。表单在左侧显示当前选择的对象的属性。

关于任何更改的确认,至少有两种策略:

我的问题是关于第二种策略,作为一个带有 WPF 的 MVVM 应用程序实现:

我想向我的用户反馈有未保存的更改。诸如文本编辑器之类的应用程序通常通过在发生任何更改时启用“保存”按钮并在用户按下它以确认她/他的更改后再次禁用它来解决此问题。

如果我理解正确,我将不得不监视表单中任何绑定属性的更改(由模型类支持)。通常我的模型类使用自动属性(没有明确的 getter 和 setter)。我是否必须为我的所有属性编写显式获取器以在任何更改时启用“保存”按钮,或者是否有更聪明的方法来实现这一点?

标签: c#wpf

解决方案


遵循 MVVM 模式,您的 ViewModel 应该实现INotifyPropertyChanged接口,这样您就可以轻松订阅PropertyChanged事件并监控属性更改


推荐阅读