2010-05-21 85 views
0

*是否可能通过IDataErrorInfo或INotifyDataErrorInfo **产生验证错误(由绑定源产生)而不访问数据源*?TextBox数据绑定验证

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

预先感谢您。

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

回答

2

不知道你的意思“而无需访问数据源”,但你也可以访问错误通过与

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

绑定要知道,如果没有错误,这将引发例外。因此,根据您想要执行的操作,检查“Validation.HasErrors”属性是否存在错误。

还要检查如何正确地做到这一点this example

+0

OK帮助。我实际上需要获取表单代码的错误,但是您的回答给了我一些有用的指导,谢谢。 – Koynov 2010-05-25 06:51:19

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; 
} 
} 
} 

类似的东西