17,748
社区成员




public bool Dirty { get; private set; }
避免被 VM 对象外部的客户代码修改 Dirty 状态。也许你的 Dirty 会抛出事件通知,从而你的 xaml 上就能在界面视图用什么 UI 形式来实时表现 Dirty 指示。public class MyViewModel
{
private string _A;
public string A
{
set
{
_A = value;
if (!Dirty)
Dirty = true;
}
get
{
return _A;
}
}
public bool Dirty { get; set; }
public void Save()
{
........保存状态
Dirty = true;
}
}
这样,界面对应的 ViewModel 本身有一个 Dirty 属性来说明是否脏。
当然,作为 VM 设计肯定还有 INotifyPropertyChanged 等等接口。这里只是来说明 Dirty 属性的操作机制。 public void Save()
{
........保存状态
Dirty = false;
}
当用户在界面操作时,改变数据,则设置了 Dirty 状态。那么你在窗体关闭、或者任何其它时刻,可以根据 Dirty 来进行提示,需要的时候则调用 Save 方法。