IDataErrorInfo vs IValidatableObject?

时间:2010-11-20 17:08:31

标签: .net asp.net-mvc .net-4.0 ivalidatableobject

目前,我的业务对象实现了IDataErrorInfo。由于我打算在ASP.NET MVC 3中使用这些库,我想我也应该实现IValidatableObject或者代替。

WPF是否与IValidatableObject一起使用?

DataAnnotations如何适应图片?

2 个答案:

答案 0 :(得分:2)

IValidatableObject是用于验证整个对象级错误的接口。您有责任通过验证数据注释或其他技术来实现它。 MVC对数据注释有本机支持,因此您可以在没有任何进一步支持的情况下使用它们。

相反,wpf只支持IDataErrorInfo。它不支持IValidateObject或DataAnnotations。

但是我实现了一个包装器对象,它将Wpf中的DataAnnotation支持添加到包装对象中。它还提供了IPropertyChanged的实现。请参阅codeplex上的Validation Toolkit for Wpf and Silverlight

答案 1 :(得分:1)

我在实体上实现IValidatableObject,用IDataErrorInfo在视图模型(自动通过基类)包装它以获得WPF。我的实体将在WPF,MVC和新的EF CTP5中运作良好,同时也尊重IValidatableObject