2012-09-13 88 views
5

當一個類實現IDataErrorInfo的接口和這個類是的結合到一個組成部分,有一個方法暫時禁用與結合相關聯的驗證?(臨時)禁用驗證在WPF

例如,如果我不想讓我的類的屬性,空字符串時,窗體打開綁定控件被標記爲具有錯誤(在默認情況下紅色邊框)。我認爲立即將輸入標記爲有錯誤(在用戶甚至有機會輸入內容之前)是有點笨拙的。有沒有解決的辦法?

我已經搜索了大部分的下午,但我似乎想出的是如何禁用提交按鈕,直到所有輸入有效(這不是我真正的我)。

回答

3

在實現IDataErrorInfo的類中有一個標誌,該標誌控制何時完成驗證。 DoValiation;

當標誌是假你會作出IDataErrorInfo的報告沒有任何錯誤(即返回NULL,等等)。

在視圖intialisation您將設置DoValidation標誌設置爲false在你的模型,然後讓該視圖做所有的綁定您的數據。

的觀點是「裝」之後,那麼你會在DoValidation標誌設置爲true ....從這一點上...更改數據將導致錯誤的指標出現,如果值仍然無效。

看到這個職位的其他更多的細節上如何構建IDataErrorInfo的代碼: