2011-10-11 103 views
0

參考: C# databinding on combobox的數據綁定組合框

我有類似的情況。我有一個幾乎沒有文本框,組合框,複選框的表單。最初我用來捕捉「更改」事件(如,text_changed,selected_index_changed等),並將UI數據與後臺對象同步。我瞭解了Databinding,並將所有UI元素綁定到了我的支持對象。

問題: 基於我的用戶界面的狀態,我啓用和禁用「提交」按鈕,它使用後臺對象保存到內容。但是現在,由於DataBinding,支持對象的屬性不會更改,除非綁定到該控件的控件適當地失去焦點。

問題 有沒有標準的方法來解決這個問題?或者我還需要捕獲「更改」事件並設置支持對象的值?

此外,爲了使窗體容錯,我用它來保存支持對象每N秒。但是對於DataBinding(假設焦點上的控件仍然沒有爲後備對象設置它的值),我將保存錯誤的數據。

我試了一下 埃維N秒調用this.validate() - >這不工作,因爲它實際上是在焦點的控件填充舊數據。

----- ------注

背襯對象實現INotifyPropertyChanged接口。

,這是我怎麼綁定(不是設計師),但在代碼中。

裝訂裝訂=新結合( 「選中」,溶液, 「InternalFlag」); checkBoxFlag.DataBindings.Add(binding);

回答

0

您需要更改其描述何時更新從失去重心的後端對象的綁定的屬性值改變

Data Source Update Mode

binding = new Binding("checked", solution, "InternalFlag", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)); 
+0

因此,其性質是什麼?我試圖快速找到它,但我無法。 – karephul

+0

我已經嘗試設置「binding.DataSourceUpdateMode = DataSourceUpdateMode.OnPropertyChanged」,但不起作用 – karephul

+0

你確定嗎?因爲你的代碼沒有指定它 –