手动创建 WPF 验证错误

本文关键字:验证 错误 WPF 创建 | 更新日期: 2023-09-27 18:34:19

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

感谢您的帮助!

手动创建 WPF 验证错误

使用 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 Source="{StaticResource data}" Path="Age"
                    UpdateSourceTrigger="PropertyChanged"
                    ValidatesOnDataErrors="True"   />
VM

应实现IDataErrorInfo并在绑定中设置ValidatesOnDataError=True。然后,您可以在视图模型中验证是否存在这样的人。

我在

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