使用WPF MVVM检测页面是否需要保存的最佳方法是什么

使用WPF MVVM检测页面是否需要保存的最佳方法是什么,wpf,mvvm,save,Wpf,Mvvm,Save,我有一个应用程序,您可以在其中打开许多不同的项目(如在excel中,您可以打开许多不同的选项卡),如果项目或“选项卡”被修改,我希望检测更改,并允许用户保存或提示,如果用户关闭而不保存。当保存可用/不可用时,可能启用/禁用保存按钮。 我正在使用带有MVVM模式的c#WPF。您可以在视图模型类中创建一个属性,该属性指示视图模型自创建以来是否已被修改。属性的类型可以是bool,并且可以称为IsDirty。修改视图模型的属性时,此属性应设置为true。您可以在properties的set方法中定义此行

我有一个应用程序,您可以在其中打开许多不同的项目(如在excel中,您可以打开许多不同的选项卡),如果项目或“选项卡”被修改,我希望检测更改,并允许用户保存或提示,如果用户关闭而不保存。当保存可用/不可用时,可能启用/禁用保存按钮。
我正在使用带有MVVM模式的c#WPF。

您可以在视图模型类中创建一个属性,该属性指示视图模型自创建以来是否已被修改。属性的类型可以是
bool
,并且可以称为
IsDirty
。修改视图模型的属性时,此属性应设置为
true
。您可以在properties的set方法中定义此行为。当用户想要关闭GUI时,检查
IsDirty
属性是否为true,并保存更改。

绑定到
IsDirty
属性以启用/禁用保存按钮。

此问题的常见模式是“IsDirty”模式。基本上,您的所有数据块都有一个布尔标志“isDirty”,用于标记自上次保存以来它们是否已更改。在修改数据或保存文档时更新此字段

以下是WPF“isDirty”实现的示例: