我想從我的輸入控件中得到任何驗證錯誤。從WPF控件獲取任何驗證錯誤
到目前爲止,我有幾個viewmodels全部實現了ValidationViewModel
,它實現了ViewModelBase
和INotifyDataErrorInfo
。 ViewModelBase
執行INotifyPropertyChanged
。看看this link我從哪裏得到驗證想法。他和我的驗證模型基本相同,但我的分爲兩部分。
根據設計,任何屬性更改都將觸發propertychanged事件,ValidationViewModel
會偵聽並執行所有自定義驗證。這很好,很好。
這裏的問題是驗證只發生在屬性發生變化的情況下......但根據這一點,優秀的article綁定引擎執行驗證規則並嘗試在屬性設置之前進行類型轉換,我的驗證火。
想象一下,一個文本框綁定到一個整數,用戶輸入'a'作爲示例。然後,我剩下一個紅色的邊框。我怎樣才能在這個控件上捕獲任何類型的驗證錯誤?自定義和默認。
我的目標是有一個保存按鈕,在我的視圖模型中任何一種錯誤都被禁用。
,那麼您已經熟悉了Validation.ErrorTemplate。好的,謝謝。當我有時間的時候會試一試,如果有效,請給出答案。想想我會先嚐試冒泡,只需要找到漂亮的方式來實現它。 – smok
基本上,要禁用該按鈕,請在CanExecute方法調用'Validating'事件中。在你的視圖中,設置'EventArgs.IsValid = Validation.GetHasError(this)'。 – Liero