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