在WPF ViewModel中将对象(非实体,而不是框架)标记为脏

时间:2013-10-10 19:10:37

标签: wpf mvvm icommand canexecute

在我的viewmodel中,有一个CurrentObject类型的属性SomeDomainType可以序列化。

有一个表单可以编辑其属性,其中一个按钮是“Commit Changes”,数据绑定到ICommand CommitChangesCommand

现在我希望这个按钮处于活动状态(通过CanCommitChangesCommand(),只有当对象被修改时才能与Josh Smith的RelayCommand正确连接),也就是说,对象是“脏”的。

再说一遍,我想问的是:

  

“我如何将对象标记为脏,以便我可以使用private bool ThatPropertyIsDirty()方法检查某些CanExecute()内部的内容?”

1 个答案:

答案 0 :(得分:1)

从它的声音:

  1. IsDirty
  2. 上添加SomeDomainType媒体资源
  3. IsDirty的设置器中为NotifyPropertyChanged
  4. 举起IsDirty事件
  5. 在您更改为SomeDomainType的所有属性中,将对象视为Dirty,在其设置者中,将IsDirty设置为true
  6. 这假设您的SomeDomainType实现了INotifyPropertyChanged接口。如果没有,请在SomeDomainType周围创建一个包装类,然后对该包装进行上述更改。