У меня есть DataGrid со столбцом, который связан со свойством типа int. Я использую IDataErrorInfo для проверки. Мои правила проверки работают нормально, они запускаются, как только я меняю значение ячейки. Допустим, пользователь вводит значение меньше 0, я показываю соответствующую ошибку во всплывающей подсказке. Проблема возникает, когда пользователь очищает значение текстового поля. В этом случае IDataErrorInfo никогда не срабатывает, и в результате я не могу показать ошибку проверки пользователя через всплывающую подсказку о том, что значение не может быть пустым. DataGrid делает красную рамку вокруг текстового поля, и это хорошо, а '!' подписать в заголовке строки, но во всплывающей подсказке ошибки проверки нет, так как IDataErrorInfo никогда не запускался. Могу ли я что-нибудь сделать, чтобы запустить информацию IDataError в случае очистки значения текстового поля?
Edit:
XAML
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding DisplayOrder, UpdateSourceTrigger=PropertyChanged, NotifyOnValidationError=True, ValidatesOnDataErrors=True}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<TextBox Text="{Binding DisplayOrder, UpdateSourceTrigger=PropertyChanged}"/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
Свойство DisplayOrder
public int DisplayOrder
{
get
{
return m_DisplayOrder;
}
set
{
if(value != m_DisplayOrder)
{
m_DisplayOrder = value;
OnPropertyChanged("DisplayOrder");
}
}
}