У меня есть сетка данных, в которой я реализую свои собственные проверки. Когда возникает ошибка, я устанавливаю красную границу строки и показываю пользователю сообщение об ошибке. Однако в моей сетке данных также появляется красный восклицательный знак. Мне было интересно, есть ли способ скрыть это? Я попытался проверить Row.HasErrors(), но это всегда возвращает false, а Row.ClearErrors() также не удалит восклицательный знак.
Скрыть ошибку строки WPF DataGrid
Ответы:
Вы ознакомились с Как реализовать проверку с помощью элемента управления DataGrid?
Это немного зависит от того, где именно отображается восклицательный знак в DataGrid. Например, если это строка, в которой происходит проверка, вы можете реализовать свой собственный DataGrid.RowValidationErrorTemplate или DataGrid.ValidationErrorTemplate.
По ссылке довольно много примеров для различных ситуаций.
Как только в datagridrow возникает ошибка, восклицательный знак не исчезает, даже если вы устраните ошибку. В моем случае мне не нужна ошибка строки, так как я показываю ошибки в самой ячейке. Поэтому я использовал DataGrid.RowValidationErrorTemplate, чтобы никогда не показывать ошибку.
<DataGrid.RowValidationErrorTemplate>
<ControlTemplate>
<TextBlock Text=""></TextBlock>
</ControlTemplate>
</DataGrid.RowValidationErrorTemplate>
<DataGrid.RowValidationErrorTemplate><ControlTemplate/></DataGrid.RowValidationErrorTemplate>
23.09.2018 DataGridTextColumns
, а для привязки есть Mode=TwoWay
, попробуйте удалить его. В моем случае это решило проблему, когда красный восклицательный знак никогда не исчезал. Вот мой полезный ресурс: stackoverflow.com/questions/5099039/ 01.04.2021