我有一个绑定到列表的组合框(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