不同的操作有不同的验证规则

本文关键字:规则 验证 操作 | 更新日期: 2023-09-27 18:18:46

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

现在我需要验证用户的输入不同基于什么按钮已被单击。例如,用户应该能够保存对象,即使大多数字段是空的,但为了批准一些字段是必需的。

一种方法是将验证放在CanSave和CanApprove方法中(按钮绑定到ViewModel中的iccommand)。这里的问题是按钮被禁用,但没有指示需要填充哪些字段才能启用特定的按钮。

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

不同的操作有不同的验证规则

尝试在类中添加LastStateValidated属性,并根据该值进行IDataErrorInfo验证。

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

当你尝试执行一个命令时,状态改变,这将使IDataErrorInfo验证不同,所以不同的验证错误将根据用户尝试执行的最后一个操作显示。