2010-02-18 64 views
0

我有這個在我的表單設計器代碼:爲什麼的BindingSource = newBindingSource沒有刷新數據

this.referenceNumberTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.clientDetailBindingSource, "ClientDetails.ReferenceNumber", true)); 

在形式的方法它被顯示之前我說

this.clientDetailBindingSource = passedInBindingSource; 

的控件是數據綁定到this.clientDetailBindingSource不顯示任何數據。

我也試過在做ResetBindings()但沒有任何事情發生。

+0

我知道,它聽起來很愚蠢,但是:當您在調試會話中檢查它時,新的綁定源實際上是否包含預期的數據?或者你使用靜態綁定的屬性描述符? – gimpf

+0

它確實包含列表中的數據2項目 Jon

回答

1

文本框的DataBindings包含引用原始綁定源的Binding對象;重新分配形式的數據成員不會改變已經換句話說創建

綁定對象,文本框的結合仍然與舊的綁定源

,除非你的InitializeComponent調用之前執行此任務在窗體的構造函數中...?

+0

我正在更改控件綁定的綁定源,但控件應該反映更改 – Jon

+0

@ [Jon]:不,你不是;你只是認爲你是! ;-) InitializeComponent創建綁定對象,該對象將控件綁定到當前的任何bindinsource對象。稍後更改表單上的綁定源對象不會奇蹟般地改變已創建的綁定對象。 –

+0

我可以在不做刪除/添加的情況下更改現有綁定對象中的綁定源嗎? – Jon