我有一個綁定到列表的組合框(Windows窗體)。它是在設計時創建的。當List內容改變時,我的代碼調用一個函數來刷新數據綁定。 這對於.NET 3.5正常工作:在C#和.NET 4.0中刷新組合框數據綁定
BindingData.SuspendBinding();
DataSource = null;
DataSource = BindingData;
BindingData.ResumeBinding();
我已經切換到.NET 4.0,它已停止工作。特別是在通過這段代碼之後,VS調試器顯示BindingData.DataSource引用一個包含127個項目的列表,但ComboBox Items屬性包含零個項目。
看到這個SO問題沿着一個類似的主題:ComboBox Items Count Doesn't Match DataSource。
我試過了所有我能想到的東西。目前我的代碼如下所示,仍然不起作用:
BindingData.SuspendBinding();
DataSource = null;
DataSource = BindingData;
BindingData.ResumeBinding();
BindingContext Dummy = this.BindingContext;
Invalidate();
PerformLayout();
我試過從列表切換到BindingList,並沒有幫助。我不得不根據自己的意願從.NET 3.5切換到.NET 4.0,所以這非常令人沮喪。我確定有一個特定的序列可行。有任何想法嗎?
這是怎麼了,我的數據源連接到ComboBox:
private BindingSource BindingData = new BindingSource();
BindingData.DataSource = Nodes;
DataSource = BindingData;
感謝,安迪
這似乎是Windows.Forms的......掉落列表標籤中贊成winforms標籤。 – Randolpho 2010-09-16 17:15:49
如果你評論Suspen/ResumeLayout呢? – 2010-09-16 17:21:14
無變化 - 列表仍爲空。 – Andy 2010-09-16 17:27:13