1

我有一个 UI,其中包含一些绑定到Person类的控件。每当用户输入新信息时,业务逻辑需要检查数据库是否存在这样的人。如果不是,我需要向用户发送消息并将该文本框标记为有错误(框周围的红框)。我的问题是我可以在产生验证错误的属性的 getter 或 setter 上执行此操作吗?

谢谢您的帮助!

4

3 回答 3

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"   />
于 2013-10-08T12:53:44.480 回答
0

我在学习使用 WPF 验证时遇到了同样的问题,我通过本教程找到了帮助,希望它也能帮助你!

于 2013-10-08T12:47:45.750 回答
0

你的虚拟机应该在你的绑定中实现IDataErrorInfo和设置。ValidatesOnDataError=True然后你可以在你的 ViewModel 中验证这样的人是否存在。

于 2013-10-08T12:50:01.443 回答