2012-12-21 87 views
10

似乎WPF 4.0 DataGrids中存在一个错误。WPF Datagrid行验证

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

该验证在单元格级别完美工作。但是,如果使单元格无效,请转至任何其他单元格,然后返回到无效单元格并输入有效数据,单元格变为有效,但该行应该有效时该行保持无效。

+0

我有完全相同的问题! – Reilly

+0

“但是,当您将单元格无效时,请转至其他单元格,然后返回到无效单元格并输入有效数据,单元格变为有效,但该行应保持有效时该行保持无效。完全相同的问题。 – SKINDER

+1

树人,同样的wpf问题,还没有发布代码呢。无论如何,这对电影来说都是不好的标题。 :D有没有人想过发布一些代码或xaml? –

回答

2

在一般属性验证中,一旦源更新,它将被验证,但在RowValidation的情况下,您需要指定RowValidationRule来执行RowValidation

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

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

0

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