我使用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;
}
}
Run Code Online (Sandbox Code Playgroud)
Xaml文件:
<TextBox Text="{Binding Path=Name, Mode=TwoWay, ValidatesOnDataErrors=true}" />
Run Code Online (Sandbox Code Playgroud)
当用户点击"创建新人"后执行以下代码:
DataContext = new Person();
Run Code Online (Sandbox Code Playgroud)
问题是,当刚创建person时,其名称为空,WPF会立即绘制红框并显示错误消息.我希望它仅在名称已编辑且焦点丢失时显示错误.有人知道这样做的方法吗?