Я разрабатываю приложение 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 с помощью блока валидации Enterprise Library.
Мне удалось это сделать, реализовав интерфейс 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) классе?
А также есть ли триггеры для запуска проверки объектов.Я хотел бы проверять объекты только тогда, когда я хочу, а не постоянно.