询问WPF MVVM数据编辑表单验证指南

询问WPF MVVM数据编辑表单验证指南,wpf,validation,mvvm,input,binding,Wpf,Validation,Mvvm,Input,Binding,我想制作一个表单,用于修改支持验证和[取消]按钮的数据 为了在[Edit]表单上显示现有数据,我将表单与ViewModel对象绑定 为了验证用户输入,我使用带有UpdateSourceTrigger=PropertyChanged的TextBox。我想在用户输入TextBox值时验证用户输入 此方法的问题是:当用户单击[取消]按钮时,ViewModel数据已经用取消的表单数据更新。如果用户取消编辑操作,我不希望更新ViewModel,因为它也绑定到其他视图 我怎样才能达到这个目标?如果用户单击[

我想制作一个表单,用于修改支持验证和[取消]按钮的数据

为了在[Edit]表单上显示现有数据,我将表单与ViewModel对象绑定 为了验证用户输入,我使用带有UpdateSourceTrigger=PropertyChanged的TextBox。我想在用户输入TextBox值时验证用户输入 此方法的问题是:当用户单击[取消]按钮时,ViewModel数据已经用取消的表单数据更新。如果用户取消编辑操作,我不希望更新ViewModel,因为它也绑定到其他视图


我怎样才能达到这个目标?如果用户单击[Cancel]按钮,我的应用程序不适合从网络数据库重新加载ViewModel。

如果您的ViewModel实现IEditableObject接口,您可以在Cancel命令上调用CancelEdit并删除所有编辑。这不是魔术。您需要在编辑之前保存状态,然后在取消时还原。没有人为你做这件事。您需要自己实现它。如果我们必须手动保存/还原ViewModel,那么我认为最好将UpdateSourceTrigger=Explicit设置为在单击[save]按钮时更新ViewModel。但只有在文本框.文本源更新时才会触发,并且在用户输入数据时无法进行验证。你有解决这个问题的办法吗?