我有一个表单上有3个按钮:保存,批准和拒绝。针对不同操作的不同验证规则
现在我需要验证用户的输入不同,基于点击了哪个按钮。 例如,即使大多数字段为空,用户也应该能够保存该对象,但为了批准某些字段是必需的。
一种方法是对CanSave和CanApprove方法进行验证(按钮绑定到ViewModel中的ICommand)。这里的问题是按钮被禁用,但没有指示需要填充哪些字段来启用特定的按钮。
理想情况下,所有按钮都应该始终启用,并在按钮被点击时执行验证。但是,如何将虚拟机中的字段标记为无效?
我有一个表单上有3个按钮:保存,批准和拒绝。针对不同操作的不同验证规则
现在我需要验证用户的输入不同,基于点击了哪个按钮。 例如,即使大多数字段为空,用户也应该能够保存该对象,但为了批准某些字段是必需的。
一种方法是对CanSave和CanApprove方法进行验证(按钮绑定到ViewModel中的ICommand)。这里的问题是按钮被禁用,但没有指示需要填充哪些字段来启用特定的按钮。
理想情况下,所有按钮都应该始终启用,并在按钮被点击时执行验证。但是,如何将虚拟机中的字段标记为无效?
尝试在您的课堂上添加类似LastStateValidated
属性的内容,并根据该值对IDataErrorInfo
进行验证。
这意味着您第一次加载表单时,出现的验证只会是无论对象状态如何都有效的验证。
当您尝试执行命令时,状态会更改,这将使IDataErrorInfo
验证方式不同,因此将根据用户尝试执行的最后一个操作显示不同的验证错误。
非常感谢您为简单而优雅的解决方案:) – 2011-12-23 18:14:40
你有什么代码,你已经写或尝试到目前为止..? – MethodMan 2011-12-23 17:53:29