sur*_*fen 17 c# validation wpf mvvm idataerrorinfo
我有一个基于MVVM的窗口,有许多控件,我的模型实现IDataErrorInfo.
还有一个SaveCommand按钮,通过分析Model.Error属性执行验证.
仅当我更改特定控件的值时,或者当我使用PropertyChanged通知有关该属性的更改时,视图才会显示控件周围的默认红色边框.
即使我没有触摸控件,如何强制View显示所有验证错误?
我的所有验证绑定都包括ValidatesOnDataErrors=True, NotifyOnValidationError=True.
我知道一个解决方案是有一个包含所有错误的聚合框,但我更愿意在每个控件的基础上显示错误.
我不想Model.NotifyPropertyChanged从ViewModel 触发每个绑定属性.
我使用的是WPF 4.0,而不是Silverlight,因此INotifyDataErrorInfo无法使用.
Bra*_*orf 13
您提到您不希望为绑定的属性引发更改的属性,但这确实是实现此目的的最简单方法.调用不带参数的PropertyChanged将为viewmodel中的所有属性引发.
或者,您可以在任何控件上更新绑定(并强制重新验证),如下所示:
myControl.GetBindingExpression(ControlType.ControlProperty).UpdateSource();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16165 次 |
| 最近记录: |