我有一个UI,其中包含一些绑定到Person
类的控件。每当用户输入新信息时,业务逻辑需要检查数据库是否存在这样的人。如果不是,我需要向用户发送消息并将该文本框标记为有错误(框周围的红框)。我的问题是,我可以在提供验证错误的属性的getter或setter上执行此操作吗?
感谢您的帮助!
答案 0 :(得分:3)
使用IDataErrorInfo
,您可以按照以下方式执行此操作,
public class Person : IDataErrorInfo
{
private int age;
public int Age
{
get { return age; }
set { age = value; }
}
public string Error
{
get
{
return null;
}
}
public string this[string name]
{
get
{
string result = null;
if (name == "Age")
{
if (this.age < 0 || this.age > 150)
{
result = "Age must not be less than 0 or greater than 150.";
}
}
return result;
}
}
}
在XAML Binding中如下,
<Binding Source="{StaticResource data}" Path="Age"
UpdateSourceTrigger="PropertyChanged"
ValidatesOnDataErrors="True" />
答案 1 :(得分:0)
我在学习使用WPF验证时遇到了同样的问题 我通过tutorial找到了帮助,希望它也可以帮到你!
答案 2 :(得分:0)
您的虚拟机应实施IDataErrorInfo
并在您的绑定中设置ValidatesOnDataError=True
。然后,您可以在ViewModel中验证是否存在这样的人。