TextBox数据绑定验证

时间:2010-05-21 12:53:57

标签: c# .net wpf silverlight

*是否可以获取验证错误(由绑定源通过IDataErrorInfo或INotifyDataErrorInfo生成)**而无需访问数据源*?

重点是获取将要显示的错误消息。

提前谢谢。

编辑:“不访问数据源”意味着我不希望通过在数据源上实现IDataErrorInfo接口的属性获取错误消息。

2 个答案:

答案 0 :(得分:2)

不确定“不访问数据源”是什么意思,但您也可以通过绑定来访问错误

{Binding RelativeSource={RelativeSource Self},Path=(Validation.Errors)[0].ErrorContent}

请注意,如果没有错误,这将引发异常。因此,根据您要执行的操作,检查“Validation.HasErrors”属性是否存在错误。

同时检查this example如何正确执行此操作:

答案 1 :(得分:1)

“不访问数据源”意味着您可以看到在业务类拥有的属性的{}}部分中创建的验证错误。例如。我们有Person类:

public class Person
{
string firstName;
public string FirstName
{
get{return firstName;}
set
{
if (String.IsNullOrEmpty(value))
throw new Exception("First name should be provided!");
firstName = value;
}
}
}

像这样的东西