【发布时间】:2014-05-23 20:40:21
【问题描述】:
我在 ViewModel 中使用 ICommand 以便能够从集合等中添加/删除项目。
我也有属于模型类的验证来验证文本框等。
如果文本框验证失败,是否可以使用两者(ViewModel 中的ICommand + 模型中的验证)禁用按钮?我问是因为ICommand 暴露了CanExecute 事件,所以我想使用它是明智的!
【问题讨论】:
标签: wpf mvvm icommand idataerrorinfo
我在 ViewModel 中使用 ICommand 以便能够从集合等中添加/删除项目。
我也有属于模型类的验证来验证文本框等。
如果文本框验证失败,是否可以使用两者(ViewModel 中的ICommand + 模型中的验证)禁用按钮?我问是因为ICommand 暴露了CanExecute 事件,所以我想使用它是明智的!
【问题讨论】:
标签: wpf mvvm icommand idataerrorinfo
你的想法是对的。实现一个CanExecute 方法,该方法返回模型验证的结果,这样当它失败时,按钮将被禁用。
然后,您必须确保在验证条件更改时再次调用CanExecute - 例如,当绑定属性更改时。为此,you may require more advanced implementations 的 ICommand 如 Prism's DelegateCommand。
【讨论】: