2
概括地說,這個數據綁定工作正常數據綁定的WinForms文本框
tbTotalTaxDue.DataBindings.Add("Text", I, "TotalTaxDue");
也就是說,當我輸入的值無效,像一個空字符串,那麼標籤出結核病,其中的值只是恢復到以前的值。這是有道理的,因爲輸入的值不會進入十進制類型的對象屬性。但不幸的是,這兩種數據綁定的:
tbTotalTaxDue.DataBindings.Add("Text", I, "TotalTaxDue", true, DataSourceUpdateMode.OnPropertyChanged, 0, "C");
tbTotalTaxDue.DataBindings.Add("Text", I, "TotalTaxDue", true, DataSourceUpdateMode.OnValidation, 0, "C");
行爲不同,當用戶輸入一個空字符串,輸入不會讓用戶切換出該文本框。有沒有辦法讓數據綁定顯示爲貨幣,但只需取消任何無效的編輯?
它有很大的幫助。爲了我自己的啓發,你知道爲什麼在第一次驗證時這不是必需的嗎?沒有自定義顯示格式的那個? – 2011-03-29 19:23:35
「Add()」的第四個參數是一個布爾值,它啓用格式化;你在後面的兩個調用中將它設置爲true。 'Binding.FormattingEnabled'的默認值是false,當設置爲true時,它將執行類型檢查。由於空字符串不能轉換爲十進制值,因此不驗證。 – Rob 2011-03-29 19:35:06
選擇2打破了綁定的格式,但選擇1完美地工作。謝謝! – 2011-03-29 19:37:31