2012-07-24 40 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