Как проверить дочерние объекты путем реализации IDataErrorInfo в родительском классе
Я разрабатываю приложение WPF с использованием архитектуры MVVM. Я любитель в WPF, так что терпите меня ..
У меня есть два модельных класса. Родительский класс имеет объект другого (дочернего) класса в качестве своего свойства. (я имею в виду вложенные объекты, а не наследуемые объекты)
Например, рассмотрим следующий сценарий.
public class Company
{
public string CompanyName {get; set;}
public Employee EmployeeObj {get; set;}
}
public class Employee
{
public string FirstName {get; set;}
public string LastName {get; set;}
}
Я хочу проверить свойства объекта Employee с помощью блока проверки библиотеки предприятия.
Я смог сделать это, реализовав интерфейс IDataErroInfo в классе сотрудников, как показано ниже
public class Employee : IDataErrorInfo
{
[NotNullValidator(MessageTemplate="First Name is mandatory"]
public string FirstName {get; set;}
[StringLengthValidator(0,20,MessageTemplate="Invalid")]
public string LastName {get; set;}
public string Error
{
get
{
StringBuilder error = new StringBuilder();
ValidationResults results = Validation.ValidateFromAttributes<Employee>(this);
foreach (ValidationResult result in results)
{
error.AppendLine(result.Message);
}
return error.ToString();
}
}
public string this[string propertyName]
{
get
{
ValidationResults results = Validation.ValidateFromAttributes<Employee>(this);
foreach (ValidationResult result in results)
{
if (result.Key == propertyName)
{
return result.Message;
}
}
return string.Empty;
}
}
}
Я не хочу реализовывать IDataErroInfo для каждой дочерней модели, которую я создаю.
Есть ли способ проверить объект Employee путем реализации IDataErrorInfo в родительском (Company) классе?
А также есть ли триггеры для запуска проверки объектов. Я хотел бы проверять объекты только тогда, когда я хочу, а не все время.