1

Personクラスにバインドされたいくつかのコントロールを含む UI があります。ユーザーが新しい情報を入力するたびに、ビジネス ロジックは、そのような人物が存在するかどうかをデータベースで確認する必要があります。そうでない場合は、ユーザーにメッセージを送信し、そのテキストボックスにエラーがあるようにマークする必要があります(ボックスの周りの赤いフレーム)。私の質問は、検証エラーを与えるプロパティのゲッターまたはセッターでそれを行うことができますか?

助けてくれてありがとう!

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 Source="{StaticResource data}" Path="Age"
                    UpdateSourceTrigger="PropertyChanged"
                    ValidatesOnDataErrors="True"   />
于 2013-10-08T12:53:44.480 に答える