¿Validar datos usando DataAnnotations con WPF y Entity Framework?

¿Hay alguna forma de validar el uso de DataAnnotations en WPF y Entity Framework?

Creo que lo que falta en la respuesta de Craigs es cómo comprobar realmente si hay errores de validación. Este es un corredor de validación de DataAnnotation escrito por Steve Sanderson para aquellos que quieran ejecutar la verificación de validación en la capa deferente y luego en la presentación ( http://blog.codeville.net/category/xval/ , el código está en el proyecto de ejemplo):

 public static IEnumerable GetErrors(object instance) { var metadataAttrib = instance.GetType().GetCustomAttributes (typeof(MetadataTypeAttribute), true). OfType().FirstOrDefault(); var buddyClassOrModelClass = metadataAttrib != null ? metadataAttrib.MetadataClassType : instance.GetType(); var buddyClassProperties = TypeDescriptor.GetProperties (buddyClassOrModelClass).Cast(); var modelClassProperties = TypeDescriptor.GetProperties (instance.GetType()).Cast(); return from buddyProp in buddyClassProperties join modelProp in modelClassProperties on buddyProp.Name equals modelProp.Name from attribute in buddyProp.Attributes. OfType() where !attribute.IsValid(modelProp.GetValue(instance)) select new ErrorInfo(buddyProp.Name, attribute.FormatErrorMessage(string.Empty), instance); } 

No estoy familiarizado con WPF (no estoy seguro si hay alguna solución lista para usar), pero tal vez pueda usarla.

Además, hay algunos comentarios en su blog que en algunos casos no evalúa correctamente la regla de validación, pero nunca falló para mí.

Es posible que le interese la aplicación de ejemplo BookLibrary del WPF Application Framework (WAF) . Hace exactamente lo que está pidiendo: utilizar DataAnnotations en WPF y Entity Framework.

Tuve la misma pregunta y encontré las siguientes ideas:

  • Patrón de notificación
  • Un puerto del control DataForm de Silverlight a WPF en CodePlex

Use una “clase de amigo”. Número 4 en este cómo hacerlo .

He escrito un validador basado en Contributor que incluye un colaborador de validación de la anotación de datos y también verifica contra enlaces rotos (donde el usuario ha ingresado un tipo incorrecto)

http://adammills.wordpress.com/2010/07/21/mvvm-validation-and-type-checking/

En .NET 4, hay soporte de validación en Entity-Framework usando esta extensión, echa un vistazo a: http://blogs.msdn.com/adonet/archive/2010/01/13/introducing-the-portable-extensible-metadata. aspx

No estoy seguro si usa DataAnnotations aunque.

ACTUALIZAR
Lo probé con VB.NET y no funcionó, creo que solo es compatible con proyectos de C #.