针对不同操作的不同验证规则

时间:2011-12-23 17:50:56

标签: c# wpf validation mvvm

我的表单上有3个按钮:保存,批准和拒绝。

现在我需要根据点击的按钮以不同方式验证用户的输入。 例如,即使大多数字段为空,用户也应该能够保存对象,但为了批准某些字段是必需的。

一种方法是对CanSave和CanApprove方法进行验证(按钮绑定到ViewModel中的ICommand)。这里的问题是按钮被禁用但没有指示需要填充哪些字段以启用特定按钮。

理想情况下,应始终启用所有按钮,并在单击按钮时执行验证。但是如何将字段标记为VM无效?

1 个答案:

答案 0 :(得分:1)

尝试在您的课程中添加类似LastStateValidated属性的内容,并根据该值IDataErrorInfo验证。

这意味着第一次加载表单时,无论对象的状态如何,出现的验证将只是有效的验证。

当您尝试执行命令时,状态会更改,这将使IDataErrorInfo以不同方式进行验证,因此将根据用户尝试执行的最后操作显示不同的验证错误。

相关问题