我试图了解我最后一个问题的本质,并使描述更加清晰。
给定的是一个 WPF 表单,用于提交带有两个文本字段和一个“保存”按钮的新数据。这两个文本字段都是必填字段并绑定到 ViewModel 属性。Button 使用 Execute 和 CanExecute 方法绑定到“Execute”中继命令。CanExecute 返回 ViewModel 的 !HasErrors。ViewModel 实现 INotifyPropertyChanged 和 INotifyDataErrorInfo 接口。属性设置器仅运行此属性的验证。
目标是:
- 最初禁用“保存”按钮。
- 仅当两个文本字段均已成功验证且每次属性更改时都未验证整个 ViewModel 时才启用“保存”按钮。
对于第一个目标,我使用 isValidated bool 属性,该属性最初为假,并在第一次验证发生后立即变为真。然后在 CanExecute 方法中与 HasErros 一起检查此属性。有没有更优雅的方式?
我不知道如何实现第二个目标。对此有什么想法吗?
谢谢