我有一個MVVM體系結構的WPF應用程序。視圖模型實現了IDataErrorInfo,其實現將嵌套視圖模型添加錯誤。 SaveCommand將檢查最上面的視圖模型的錯誤,並顯示一個錯誤MesssageBox,如果有任何錯誤與所有錯誤的列表。模型和控件中的WPF MVVM驗證
對於由業務邏輯(如必填字段)檢查的錯誤可以正常工作,但不會在處理轉換錯誤時處理。用戶將一個名稱輸入綁定到數字屬性的TextBox。
是否有一個很好的方法/庫結合來自ViewModel錯誤和那些在UI中指出,但實際上並沒有達到視圖模型?回溯到viewmodel中的所有字符串屬性,因此可以完成轉換,感覺就是錯誤。我想通過邏輯控制樹來獲取由轉換錯誤導致的所有錯誤的列表,然後將此列表與INotifyDataInfo errorMessage結合起來,但也許有更好的方法?
像這樣的很多問題可以通過使用適當的控件解決,如果用戶應該輸入1到100之間的值爲什麼使用文本框,當滑塊設計爲這樣的時候,視圖模型不應該驗證視圖,它只驗證由視圖傳遞給它的數據。所以任何你想做什麼的庫都會違反MVVM – MikeT
*用戶在綁定到數字屬性*的文本框中輸入一個名稱,應該在UI中自動顯示錯誤 – Will
它顯示控件中的錯誤,但視圖模型不知道任何內容關於它,因爲錯誤來自綁定的值轉換。因此,當調用Save時,依賴於它自己的IDataErrorInfo的視圖模型將有效地執行保存,同時某些控件顯示綁定錯誤。 –