0
我有一個叫做Tel的對象,它被綁定到三個控件,如下所示。將對象設置爲新實例時單向綁定不起作用
this.txtTelName.DataBindings.Add("Text", tel, "T_Name", false, DataSourceUpdateMode.OnPropertyChanged);
this.chkActive.DataBindings.Add("Checked", tel, "T_Active", true, DataSourceUpdateMode.OnPropertyChanged);
this.txtNotes.DataBindings.Add("Text", tel, "T_Notes", true, DataSourceUpdateMode.OnPropertyChanged);
這提示對象已成功控制到控件的所有值。
我需要實現一個下一個按鈕,它允許用戶通過保存tel對象保存控件上的值,然後用新實例創建tel對象並清除所有控件。所以用戶可以添加一條新記錄。
這是下一個按鈕代碼:
private void btnNext_Click(object sender, EventArgs e)
{
BllTel.Save(tel); //Saves the Tel entity
this.tel = new Model.DatabaseModels.Tel();
tel.T_Active = BusinessLogic.Enums.StatusCodes.Active;
txtTelName.Text = "";
txtNotes.Text = "";
}
直到這裏一切正常,但用戶進入第二次添加之後,電話對象不綁定他們在控制值寫入,將T_Name和T_Notes作爲空值。
說明:我注意到,只要btnNext_Click方法代碼塊結束(在dubuggin上),它會遍歷數據庫中的所有實體(我看到它,當通過調試時,它通過所有定義在EDMX設計師,我可以看到它提取了表中所有可用的值)。
同樣的結果,在控制不斷即使我創建對象的新實例綁定。也許我的問題還不夠清楚:(。 –
它看起來綁定被設置爲一個特定的對象實例。我改變了一點你的代碼,一切工作完美,謝謝 綁定需要清除和重新創建: if (txtTelName.DataBindings [「Text」]!= null) this.txtTelName.DataBindings.Clear(); this.txtTelName.DataBindings.Add(「Text」,telData,「T_Name」,false,DataSourceUpdateMode.OnPropertyChanged ); } –
@ Djavier89不使用'DataBindings.Clear()',它將刪除所有其他綁定,如果你有,只需使用'DataBindings.Remove',如果你不知道如何,請參閱我的更新。 –