1
在我的视图模型中,有一个属性CurrentObject
这是可序列化的。在WPF中标记对象(不是实体,不是框架)脏视图模型
有一个窗体可以编辑它的属性,其中一个按钮是“提交更改”,数据绑定到ICommand CommitChangesCommand
。
现在我希望只有在对象被修改后,这个按钮才能被激活(通过CanCommitChangesCommand()
,正确连接Josh Smith的RelayCommand
),即对象是“脏的”。
再这么说了,我要问的是:
“?我怎么可以标记一个对象作为脏,这样我可以有一个
private bool ThatPropertyIsDirty()
方法来检查,一些CanExecute()
内”
有趣。你会说有一种典型的情况,即对象被认为是“干净”的,例如,在它被持续之后? IsDirty属性应该公开吗?我在处理对象持久化方面非常初学(顺便说一下,我的类型实现了'[Serializable]',但是我选择了迄今为止不对它实现'INPC')。 – heltonbiker
是的,通常在你的对象被持久化到你正在使用的任何持久化方法(db,平面文件等)之后,它被认为是干净的,并且你希望将IsDirty设置为false。 您可能希望将“IsDirty”公开为私有setter,因为除了属性本身之外,无需将其设置为dirty。 – Psytronic
这似乎没问题。只是为了记录,我想我会结合你的提示与这个问题中提出的'StatusEnum'(我猜是最适合交易实体)。 http://stackoverflow.com/questions/805505/c-sharp-marking-class-property-as-dirty – heltonbiker