我经常有以下任务:
我有一组对象(例如客户),想要为用户提供这些对象的编辑器。通常,在编辑器的左侧有一些列表控件,右侧是一个表单。表单显示当前在左侧选择的对象的属性。
关于任何更改的确认,至少有两种策略:
- 使编辑器成为模态对话框,并给出OK / Cancel按钮。在点击OK后保存所有对象的更改
- 在右侧的表单上方或下方放置一个Save按钮,允许用户确认对当前选择的对象所做的更改。
我的问题是关于第二种策略的,它实现了一个MVVM应用程序与WPF:
我想向用户提供反馈,说明有未保存的更改。像文本编辑器这样的应用程序通常通过在发生任何更改时启用Save按钮来解决此问题,并在用户按下按钮确认更改后再次禁用它。
如果我理解正确,我需要监视表单中所有绑定属性的更改(由模型类支持)。通常,我的模型类使用自动属性(没有显式的getter和setter)。我是否必须为所有属性编写显式的getter以在任何更改时启用Save按钮,还是有更聪明的方法来实现这一点?
BindingGroup
来实现。 - dymanoid