0
我有一個文本框,其Text
屬性綁定到視圖模型中的整數屬性。如果用戶輸入的文本是整數,WPF會自動進行驗證。這個功能對我來說很好,所以我不需要構建額外的驗證。視圖模型中驗證錯誤的意識
現在我有一個按鈕,其Command
屬性綁定到相同視圖模型中的命令,並且如果有任何驗證錯誤,我希望CanExecute
該命令的方法返回false。
在視圖模型中是否有可能知道是否存在任何驗證錯誤?
我有一個文本框,其Text
屬性綁定到視圖模型中的整數屬性。如果用戶輸入的文本是整數,WPF會自動進行驗證。這個功能對我來說很好,所以我不需要構建額外的驗證。視圖模型中驗證錯誤的意識
現在我有一個按鈕,其Command
屬性綁定到相同視圖模型中的命令,並且如果有任何驗證錯誤,我希望CanExecute
該命令的方法返回false。
在視圖模型中是否有可能知道是否存在任何驗證錯誤?
我想提出這樣的:
HasErrors
屬性添加到您的視圖模型。HasErrors
屬性設置爲true 是否有錯誤或者如果沒有錯誤,則將其設置爲false。CanExecute
方法:檢查HasErrors
財產此步驟實現INotifyDataErrorInfo
界面的上方至簡體版本(見this文章),將其引入.NET 4.5。
如果你喜歡,你也可以完全實現這個接口,如鏈接文章所述,但我認爲這比你需要的更多。
使用INotifyDataErrorInfo
您可以爲每個屬性設置和檢索錯誤列表,但這似乎不是您的情況的要求,這就是爲什麼我只提供了一個更簡單的示例,只有一個標誌HasErrors
。
最簡單的把整數屬性設爲可空'int?'然後檢查HasValue中是否可以執行 – cleftheris
http://stackoverflow.com/questions/30025757/inotifydataerrorinfo-and-binding-exceptions/30030623#30030623 – blindmeis
你會必須使用^或添加代碼並告訴我們如何實現整數屬性的驗證。 'int?'可能無法正常工作,因爲如果無效,您的驗證可能不會更新您的支持屬性。 – Kcvin