WPF数据网格行验证

时间:2012-12-21 18:03:42

标签: wpf validation wpfdatagrid

WPF 4.0 DataGrids似乎存在错误。

我正在对我的对象实现IDataErrorInfo,并且我有一个数据网格绑定的ObservableCollection。我在列上设置了ValidatesOnDataErrors=True但没有在行上设置任何内容。我有UpdateSourceTrigger="PropertyChanged"

验证在细胞水平上完美地起作用。但是,当您使单元格无效时,转到任何其他单元格然后返回到无效单元格并输入有效数据,单元格变为有效但该行在有效时仍然无效。

2 个答案:

答案 0 :(得分:4)

在一般的属性验证中,一旦源更新就会对其进行验证,但在RowValidation的情况下,您需要指定RowValidationRule来执行RowValidation

 <DataGrid.RowValidationRules>
       <DataErrorValidationRule ValidatesOnTargetUpdated="True" ValidationStep="UpdatedValue" />
 </DataGrid.RowValidationRules>

现在DataGrid将对行进行验证,您也可以提供RowValidationErrorTemplate以自定义格式显示错误。

答案 1 :(得分:0)

有同样的问题。对我来说,修复是在验证规则上设置ValidatesOnTargetUpdated="True",这似乎会在每次控件更新时强制执行另一次验证。