我有一个DataModel
实现INotifyDataErrorInfo
接口的类。在我的应用程序中,我的所有模型都从这个应用程序继承,因此我不必编写错误处理逻辑,也不必更改任何其他类中的通知。如何引发下面的基类事件,但将调用它的子类作为发送者发送?我想尽量减少重复代码,并希望避免整个虚拟和覆盖场景。
virtual void SetErrors(string propertyName, List<string> propertyErrors)
{
//clear any errors that already exist for this property
errors.Remove(propertyName);
//add the list of errors for the specified property
errors.Add(propertyName, propertyErrors);
//raise the error notification event
if (ErrorsChanged != null)
ErrorsChanged(this, new DataErrorsChangedEventArgs(propertyName));
}
编辑-问题不够清楚
例如说我有这门课
public class GangMember : Models.Base_Classes.DataObject
{
int _age;
public int Age
{
set
{
_age = value;
if (value < 0)
{
List<string> errors = new List<string>();
errors.Add("Age can not be less than 0.");
SetErrors("Age", errors);
}
}
}
}
当SetErrors()
在我的基类中被调用时,DataModel
它会引发它的事件ErrorsChanged
并将其传递给它自己的一个实例this
。在这种情况下,如何获得对子类的引用GangMember
?