使用PRISM4检测验证错误

时间:2012-07-24 19:41:59

标签: wpf prism prism-4

我正在使用Prism 4和WPF做一个应用程序,我有一些输入验证,它按预期工作,但当用户点击一个按钮时,我需要知道当时是否存在验证错误。

Prism4是否已经实施了一些方法来处理这个问题,或者我是手工实现它?

1 个答案:

答案 0 :(得分:2)

处理验证错误不是Prism作为库的一部分提供的。在实现验证时,棱镜提供的功能是IConfirmNavigationRequest interface,这使您可以在某些情况下停止导航 - 例如,当页面未通过验证时。

要在您的应用程序中实现验证,我建议您使用IDataErrorInfo interface(或.NET 4.5 / Silverlight中的INotifyDataErrorInfo)。

修改

要了解您的视图是否通过了验证,您需要在viewmodel中公开一个IsValid属性,该属性将返回此信息。一种方法是检查viewmodel并返回这些数据;另一种方法是使用ViewBaseValidation.AddErrorHandler注册到其错误事件,并在您的视图模型上调用ViewModelBase.AddError() / ViewModelBase.RemoveError()。这样,您的视图模型就会知道验证错误,并且可以轻松返回视图是否有效。