2 回答

TA貢獻1802條經(jīng)驗 獲得超4個贊
因為,轉(zhuǎn)換檢查(到 uint)不是由我的代碼完成的,我猜這是一個自動化的 .NET 事情?
嗯,是的,您不能將uint
屬性設置為有效值以外的任何其他uint
值。當您嘗試執(zhí)行此操作時,WPF 綁定引擎將捕獲異常。
這是否足夠/好的做法,還是我必須自己對輸入進行額外檢查?
如果需要,您可以使用 a 自定義“值...無法轉(zhuǎn)換”消息ValidationRule
,但不應更改源屬性的類型。
如果輸入無效并且用戶按下提交按鈕,我想將 GUI 中的文本框更新為最后一個有效值(我仍然保存在相應的視圖模型屬性中)。使用已經(jīng)到位的數(shù)據(jù)綁定來做到這一點的最佳方法是什么?
PropertyChanged
在Execute
綁定到 的命令的方法中引發(fā)源屬性的事件Button
。

TA貢獻1798條經(jīng)驗 獲得超7個贊
我發(fā)現(xiàn)最好的解決方案是讓 ViewModel 用字符串屬性包裝整數(shù)字段,并在設置新值時使用 int.TryParse 來驗證它。
否則您無法驗證 TextBox,因為無效值無法發(fā)送到 ViewModel,因此您不了解它們。
這是一個常見問題,您可以通過搜索 INotifyDataErrorInfo 找到更多信息(驗證后應該如何顯示錯誤消息)
- 2 回答
- 0 關(guān)注
- 192 瀏覽
添加回答
舉報