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