私は自分の wpf アプリケーションを開発しており、検証のために INotifyDataErrorInfo を使用しています。私には2つのクラス(AとB)があり、そのうちの1つ(A)にはもう1つのインスタンス(B)が2つあります。ここで、A から B のプロパティを検証したいと思います。それは INotifyDataErrorInfo を使用して可能ですか?
ここに私のサンプルコードがあります:
class BaseValidation : INotifyDataErrorInfo, INotifyPropertyChanged
{
// the implementaion of interface
public void MyValidationMethod(string propertyName, Func<bool> expression, string errorMessage)
{
}
}
class B : BaseValidation
{
public string MyString
{
get {return _myString;}
set {_myString = value;}
}
}
class A : BaseValidation
{
public B objB1;
public B objB2
A(){
objB1 = new B();
objB1.PropertyChanged += OnObjBPropertyChanged;
objB2 = new B();
}
private void OnObjBPropertyChanged(object sender, PropertyChangedEventArgs arg)
{
MyValidationMethod("objB1.MyString ", () => objB1.MyString != objB2.MyString , "Error");
// here validation will pass if MyString are not equal
}
}
検証メソッドで間違ったプロパティ名を渡しているような気がします。また、他のオブジェクトB
のデータが必要なため、この検証を内部に実装することはできません。B
これは一般的なシナリオであると想定できるため、このタイプの検証は可能であると想定しますが、どうすればこれを行うことができますか?