WPF监视属性更改

  • 本文关键字:属性 监视 WPF c# wpf
  • 更新时间 :
  • 英文 :


我经常有以下任务:

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

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

  • 使编辑器成为模态对话框窗口,并给它确定/取消按钮。在OK上保存所有对象的所有更改
  • 给编辑器在右侧上方或下方的保存按钮,这将使用户可以确认对当前选择的对象的更改。

我的问题是关于第二个策略,该策略用WPF:

实现为MVVM应用程序

我想给用户一个反馈,即有未保存的更改。诸如文本编辑器之类的应用程序通常会在发生任何更改时启用"保存"按钮来解决此问题,并在用户按下以确认其更改后再次禁用。

如果我正确理解,我必须监视对我的表单中任何界限的更改(由模型类支持)。通常,我的型号类使用自动属性(没有明确的Getters和Setters)。我是否必须为所有属性编写明确的getters,以启用任何更改时的保存按钮,或者有一种更聪明的方法可以实现此目标?

遵循MVVM模式,您的ViewModels应该实现INotifyPropertyChanged接口,比您可以轻松地订阅PropertyChanged事件并监视属性更改

如果您不想在模型类中编写INPC Aware Getters和Setter将"活"对象与编辑的对象进行比较。我假设您有一个正在编辑的克隆对象,以便在用户选择不保存的情况下回滚。

WPF将在用户单击并类型时自动称其为自动称为,或者您可以使用CommandManager.InvalidateRequerySuggested()

提示。

最新更新