我试图弄清楚我上一个问题的本质,并使描述更加清晰。
给定是一个WPF表单,用于提交包含两个文本字段和“保存”按钮的新数据。两个文本字段都是必填字段,并绑定到ViewModel属性。 Button使用Execute和CanExecute方法绑定到“Execute”中继命令。 CanExecute返回!ViewModel的HasErrors。 ViewModel实现了INotifyPropertyChanged和INotifyDataErrorInfo接口。属性设置器仅运行此属性的验证。
目标是:
对于第一个目标,我使用isValidated bool属性,该属性最初为false,并在第一次验证发生后立即变为true。然后在CanExecute方法中与HasErros一起检查此属性。有更优雅的方式吗?
我不知道如何实现第二个目标。有没有想过这个?
THX
答案 0 :(得分:0)
你的两个目标真的只有一个目标。让我们先看看你的第二个目标:
•仅当两个文本字段都成功验证时才启用“保存”按钮,而不会在每次更改属性时验证整个ViewModel。
最初,您的文本字段将为空,因此可能会 通过验证。因此,最初,根据您的第一个目标,您的Save
Button
将被停用:
•最初禁用“保存”按钮。
其次,在你的上一个问题中(如果你要在这篇文章中提及它,你应该添加一个链接),你在!HasErros
处理程序中使用CanExecute
时遇到了一些问题。这次,您做需要同时验证所有属性以满足您的第二个要求...所以只需在!HasErros
处理程序中使用CanExecute
。