Como validar objetos filho implementando IDataErrorInfo na classe pai

Estou desenvolvendo um aplicativo WPF usando a arquitetura MVVM. Eu sou um amador no WPF, então tenha paciência comigo ..

Eu tenho duas classes de modelo. A classe pai tem um objeto de outra classe (filho) como propriedade. (refiro-me a objetos aninhados e não a objetos herdados)

Por exemplo, considere o seguinte cenário.

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;}

}    

Desejo validar as propriedades da entidade Employee usando o Enterprise Library Validation Block.

Consegui fazer isso implementando a interface IDataErroInfo na classe de funcionários, como mostrado abaixo

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;
        }
    }
}

Eu não quero implementar IDataErroInfo para cada modelo filho que eu criar.

Existe alguma maneira de validar o objeto Employee implementando IDataErrorInfo na classe pai (Empresa)?

E também existem gatilhos para iniciar a validação de objetos. Eu gostaria de validar os objetos apenas quando eu quiser e não o tempo todo.

questionAnswers(1)

yourAnswerToTheQuestion