Проверка 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"
в правиле проверки, которое, похоже, заставляет другую проверку каждый раз, когда элемент управления обновляется.