2012-07-24 56 views
1

我正在做一个使用Prism 4和WPF的应用程序,并且我有一些输入验证,它按预期工作,但是当用户单击一个按钮时,我需要知道在那一刻是否存在验证错误呈现。使用PRISM4检测验证错误

Prism4是否有一些实现来处理这个问题,或者我必须手工实现它?

回答

2

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

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

编辑

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

+0

是的,我在我的模型中实现IDataErrorInfo,但我有一个窗口,我正在验证一些文本框。现在,当用户单击“保存”按钮时,我需要确保当前没有验证错误来继续保存文本框中的文本。 – Michelle 2012-07-24 20:13:21

+0

@Michelle请看我更新的答案。 – 2012-07-24 20:25:50

+0

嗨@Lester我会用第二种方法,但我不知道如何从我的模型中调用AddError()和RemoveError()。你能帮我吗? – Michelle 2012-07-24 21:23:28