Я использую привязку данных WPF к объектам, которые реализуют интерфейс IDataErrorInfo. В общем, мой код выглядит следующим образом:
Бизнес-объект:
public class Person : IDataErrorInfo
{
public string Name { get; set;}
string IDataErrorInfo.this[string columnName]
{
if (columnName=="Name" && string.IsNullOrEmpty(Name))
return "Name is not entered";
return string.Empty;
}
}
Файл Xaml:
<TextBox Text="{Binding Path=Name, Mode=TwoWay, ValidatesOnDataErrors=true}" />
Когда пользователь нажимает кнопку "Создать нового человека", выполняется следующий код:
DataContext = new Person();
Проблема заключается в том, что когда человек только что создан, его имя пустое, а WPF сразу рисует красную рамку и показывает сообщение об ошибке. Я хочу, чтобы он отображал ошибку только тогда, когда имя уже было отредактировано, а фокус потерян. Кто-нибудь знает, как это сделать?