WPF 4.0 DataGrids似乎存在错误。
我正在对我的对象实现IDataErrorInfo
,并且我有一个数据网格绑定的ObservableCollection
。我在列上设置了ValidatesOnDataErrors=True
但没有在行上设置任何内容。我有UpdateSourceTrigger="PropertyChanged"
验证在细胞水平上完美地起作用。但是,当您使单元格无效时,转到任何其他单元格然后返回到无效单元格并输入有效数据,单元格变为有效但该行在有效时仍然无效。
答案 0 :(得分:4)
在一般的属性验证中,一旦源更新就会对其进行验证,但在RowValidation
的情况下,您需要指定RowValidationRule
来执行RowValidation
。
<DataGrid.RowValidationRules>
<DataErrorValidationRule ValidatesOnTargetUpdated="True" ValidationStep="UpdatedValue" />
</DataGrid.RowValidationRules>
现在DataGrid
将对行进行验证,您也可以提供RowValidationErrorTemplate
以自定义格式显示错误。
答案 1 :(得分:0)
有同样的问题。对我来说,修复是在验证规则上设置ValidatesOnTargetUpdated="True"
,这似乎会在每次控件更新时强制执行另一次验证。