Проверка WPF Datagrid Row

Кажется, что есть ошибка в DataGrids WPF 4.0.

Я реализую IDataErrorInfo для своих объектов, и у меня есть ObservableCollection, к которому привязан datagrid. У меня ValidatesOnDataErrors=True установлен на столбцах, но ничего не задано в строках. У меня есть UpdateSourceTrigger="PropertyChanged"

Валидация отлично работает на ячейке по уровню ячеек. Однако, когда вы оставляете ячейку недействительной, перейдите в любую другую ячейку, а затем вернитесь к недопустимой ячейке и введите действительные данные, ячейка станет действительной, но строка останется недействительной, когда она будет действительной.

Ответ 1

При проверке общего свойства он будет проверяться после обновления источника, но в случае RowValidation вам нужно указать RowValidationRule для выполнения RowValidation.

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

Теперь DataGrid будет проверять для строк также вы можете предоставить RowValidationErrorTemplate для отображения ошибки в пользовательском формате.

Ответ 2

Была та же проблема. Исправление для меня устанавливало ValidatesOnTargetUpdated="True" в правиле проверки, которое, похоже, заставляет другую проверку каждый раз, когда элемент управления обновляется.