WPF数据网格行验证

use*_*953 10 validation wpf wpfdatagrid

WPF 4.0 DataGrids中似乎存在一个错误.

我正在实现IDataErrorInfo我的对象,我有ObservableCollection一个datagrid绑定到.我已经ValidatesOnDataErrors=True设置了列但没有设置行.我有UpdateSourceTrigger="PropertyChanged"

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

San*_*ann 4

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

 <DataGrid.RowValidationRules>
       <DataErrorValidationRule ValidatesOnTargetUpdated="True" ValidationStep="UpdatedValue" />
 </DataGrid.RowValidationRules>
Run Code Online (Sandbox Code Playgroud)

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