2012-11-27 15:03:14| 分类: WPF/Silverlight | 标签: |举报 |字号大中小 订阅
//返回错误的信息(主要是用来显示所有属性错误信息的合集,一般我们习惯在每个控件后面显示该属性错误信息,故返回null)
public string Error
{
get { return null; }
}
//返回某个属性的错误信息(该方法十分重要,由系统调用,如果返回null则不显示错误信息,否则显示该错误提示)
public string this[string columnName]
{
get {
if (columnName == "Name")
return "验证失败";
else
return null;
}
}
//属性验证完成后必须调用该通知
public event PropertyChangedEventHandler PropertyChanged;
>>>第二种方法(适用于Silverlight4以上的版本):实现接口 INotifyDataErrorInfo以下是接口的成员以及实现方式: //当验证完成后必须调用该通知
public event EventHandler<DataErrorsChangedEventArgs> ErrorsChanged;
//显示某个属性的验证错误信息,返回值说明同上
public System.Collections.IEnumerable GetErrors(string propertyName)
{
if (propertyName == "Name")
return new string[] { "验证失败" };
else
return null;
}
//获取一个值,表示是否有验证失败信息
public bool HasErrors
{
get { return true; }
}
使用时必须在页面上设置:
{Binding Name,ValidatesOnNotifyDataErrors=True,ValidatesOnDataErrors=True}
可以看出以上两上方法,在本质上没有什么区别,都是验证、设置验证错误信息、通知页面更改,只是第一种方法借助INotiflyPropertyChanged接口来实现通知,而第二种方法自带通知事件。
评论