我有以下 WPF-MVVM 设置:
- 具有 2 个文本字段的视图绑定到 ViewModel 的属性,UpdateSourceTrigger=PropertyChanged 和一个带有命令绑定到中继命令的按钮(CanExecute、Execute 方法)
- ViewModel 使用 [System.ComponentModel.DataAnnotations.Required] 注释的 2 个属性实现 INotifyDataErrorInfo。属性设置器调用私有的 ViladateProperty 方法,该方法将验证结果存储在错误字典中。HasErrors 属性获取器检查错误字典以返回适当的值。
目的是在整个表单正确验证后立即启用按钮。我对此的两个问题是:
- 如何在不为每个属性更改调用整个模型的验证的情况下实现按钮中继命令的 CanExecute 方法?
- 什么是“延迟” UpdateSourceTrigger 以设置相应属性的最佳方法不是在每次击键时而是在例如“无输入”一秒后?