ComboBox项目为空但DataSource已满

时间:2012-08-06 14:20:55

标签: c# winforms combobox

将列表绑定到组合框后,其dataSource.Count为5,但组合框项目计数为0。 怎么会这样?

我习惯于Web编程,这是在Windows窗体中。 因此,不存在combo.DataBind();方法。

这里的问题是,我正在尝试以编程方式设置所选项目。由于我没有看到combo.Items集合已填满,我无法设置所需的项目。


更新

我猜需要全面更新:

  • datasource包含7个项目
  • 绑定到组合框时,DisplayMemberValueMember已正确实施
  • 经过数据绑定后,通过gui,我可以清楚地看到组合框中的7个项目
  • combobox.DataSource.Count = 7combobox.Items.Count = 0

问题出在这里;因为在数据绑定之后,组合框的ItemCollection中没有任何项目;我无法搜索匹配并设置合适的一个。

这是一个更好理解的图像(但我很确定我很想念......)

screenshot

3 个答案:

答案 0 :(得分:21)

ddl.BindingContext = new BindingContext();分配之前添加BindingSource后,一切正常。

答案 1 :(得分:1)

如果您在debuger中展开DataSource项目,您可能会注意到列表中的第一个元素为空。这就是DataSource不呈现ComboBox项目的原因。从列表中删除空项应该完成所有工作;

答案 2 :(得分:0)

我遇到了同样的问题,但就我而言,这是由于致电引起的

combobox.Sorted = True
InitializeComponent

。我猜想该调用会初始化Items,然后阻止对DataSource的赋值更新(Items)。