Usando IDataErrorInfo con objetos anidados

Estoy usando MVVM y quiero usar IDataErrorInfo para validar mi vista.

Mi implementación actual incluye objetos anidados y diferentes ViewModels. p.ej. Entidad empresarial 'Cliente' contiene la 'Dirección' de la Entidad Comercial. Estoy accediendo a la dirección directamente en mi vista, como "Customer.Address". Para validar los cambios en la dirección, tendría que implementar IDataErrorInfo en la dirección.

Yo uso el cliente o la dirección en diferentes vistas / ViewModels. El uso en diferentes View / ViewModels conduce a diferentes comportamientos de validación. Por lo tanto, la implementación de la validación en la propia entidad es insuficiente.

Exponer las propiedades que quiero cambiar directamente en ViewModel (crear nuevas Propiedades que establezcan / obtener directamente la entidad) parece hacer que ViewModel sea demasiado rígido. y demasiado grande.

No puedo heredar de las Clases base, ya que algunas Entidades comerciales ya se derivan de otros objetos (Un hecho que no puedo cambiar). La única opción que veo en este momento es agregar una interfaz al ViewModel a las Entidades de Negocios, y reenviar las llamadas [] en las Entidades de Negocios a esa Interfaz de ViewModel.

¿Existe alguna práctica recomendada sobre cómo validar estos objetos anidados en ViewModel?

EDITAR: Una de las razones por las que la Validación no veo la Validación en los Business Objects como una idea útil es que necesito diferentes Business Objects en mi ViewModel para validar la vista y la entrada de datos.

Respuestas a la pregunta(3)

Su respuesta a la pregunta