我有一个应用程序,您可以在其中打开许多不同的项目(例如在Excel中,您可以打开许多不同的选项卡)如果修改了项目或“选项卡”,我想检测更改并允许使用保存或提示是否用户关闭而不保存。当保存可用/不可用时,可能启用/禁用保存按钮。 我正在使用带MVVM模式的c#WPF。
答案 0 :(得分:5)
此问题的常见模式是'isDirty'模式。基本上你有一个布尔标志'isDirty'用于所有数据片段,以标记自上次保存以来它们是否已被更改。您在修改数据或保存文档时更新此字段。
以下是WPF“isDirty”实现的示例:Almost-automatic INotifyPropertyChanged, automatic IsDirty, and automatic ChangeTracking
答案 1 :(得分:2)
您可以在视图模型类中创建一个属性,该属性指示视图模型自创建以来是否已被修改。该属性可以是bool
类型,可以称为IsDirty
。修改视图模型的属性时,此属性应设置为true
。您可以在属性的set-method中定义此行为。当用户想要关闭GUI时,检查IsDirty
属性是否为真,并保存更改
绑定到IsDirty
属性以启用/禁用保存按钮。