Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

IDataErrorInfo vs IValidatableObject?

Currently my business objects implement IDataErrorInfo. Since I intend to use these libraries in ASP.NET MVC 3, I figure I should implement IValidatableObject as well or maybe instead of.

Does WPF work with IValidatableObject?

How do DataAnnotations fit into the picture?

like image 435
Jonathan Allen Avatar asked Nov 20 '10 17:11

Jonathan Allen


2 Answers

IValidatableObject is an interface for verifying whole object level errors. It is your responsibility to implemts it by verifying data annotations or other techniques. MVC has native support for data annotations so you can just use them without any further support.

On the contrary wpf ONLY SUPPORTS IDataErrorInfo. It has no support for IValidateObject or DataAnnotations.

However I implemented a wrapper object that add DataAnnotation support in Wpf to the wrapped object. It furnishes also an implementation of IPropertyChanged. See the Validation Toolkit for Wpf and Silverlight on codeplex

like image 99
Francesco Abbruzzese Avatar answered Sep 21 '22 07:09

Francesco Abbruzzese


I am implementing IValidatableObject at entity, wrapping it with IDataErrorInfo at view model (automatically via base class) for WPF. My entities will work well in either WPF, MVC and new EF CTP5 who also honors IValidatableObject.

like image 28
Pablonete Avatar answered Sep 25 '22 07:09

Pablonete