第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

文本框綁定到 uint - 用戶輸入驗證

文本框綁定到 uint - 用戶輸入驗證

C#
翻翻過去那場雪 2021-11-21 16:05:49
我有 4 個帶有“提交”按鈕的用戶輸入,如下所示:for Texboxes 綁定到視圖模型中的 uint 變量并使用“標準”O(jiān)nPropertyChanged()方式,例如:    /// <summary>    /// Width of the exported image    /// </summary>    public uint ImageExportWidth    {        get { return imageExportWidth; }        set        {            if (value > 0 && value < 10000)            {               imageExportWidth = value;            }            else            {                GuiCommons.ModernDialogShowMessage(GeneralDefines.SizeNotSupported, DefOmegaMessageBox.OmegaException);            }            OnPropertyChanged("ImageExportWidth");        }    }如果用戶按下提交按鈕,這些值將寫入一個 init 文件,該文件稍后用于導出過程。如果現(xiàn)在輸入無效,則視圖模型中的值已經(jīng)沒有更新并且 GUI 中的反饋如下所示:現(xiàn)在,我有以下兩個問題:因為,轉(zhuǎn)換檢查(到 uint)不是由我的代碼完成的,我猜這是一個自動化的 .NET 事情?這是否足夠/好的做法,還是我必須自己對輸入進行額外檢查?如果輸入無效并且用戶按下提交按鈕,我想將 GUI 中的文本框更新為最后一個有效值(我仍然保存在相應的視圖模型屬性中)。使用已經(jīng)到位的數(shù)據(jù)綁定來做到這一點的最佳方法是什么?
查看完整描述

2 回答

?
慕虎7371278

TA貢獻1802條經(jīng)驗 獲得超4個贊

因為,轉(zhuǎn)換檢查(到 uint)不是由我的代碼完成的,我猜這是一個自動化的 .NET 事情?

嗯,是的,您不能將uint屬性設置為有效值以外的任何其他uint值。當您嘗試執(zhí)行此操作時,WPF 綁定引擎將捕獲異常。

這是否足夠/好的做法,還是我必須自己對輸入進行額外檢查?

如果需要,您可以使用 a 自定義“值...無法轉(zhuǎn)換”消息ValidationRule,但不應更改源屬性的類型。

如果輸入無效并且用戶按下提交按鈕,我想將 GUI 中的文本框更新為最后一個有效值(我仍然保存在相應的視圖模型屬性中)。使用已經(jīng)到位的數(shù)據(jù)綁定來做到這一點的最佳方法是什么?

PropertyChangedExecute綁定到 的命令的方法中引發(fā)源屬性的事件Button。


查看完整回答
反對 回復 2021-11-21
?
元芳怎么了

TA貢獻1798條經(jīng)驗 獲得超7個贊

我發(fā)現(xiàn)最好的解決方案是讓 ViewModel 用字符串屬性包裝整數(shù)字段,并在設置新值時使用 int.TryParse 來驗證它。

否則您無法驗證 TextBox,因為無效值無法發(fā)送到 ViewModel,因此您不了解它們。

這是一個常見問題,您可以通過搜索 INotifyDataErrorInfo 找到更多信息(驗證后應該如何顯示錯誤消息)


查看完整回答
反對 回復 2021-11-21
  • 2 回答
  • 0 關(guān)注
  • 192 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號