14

将列表绑定到combobox后,它的dataSource.Count是5,但是combobox item count是0,怎么可能呢?

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

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


更新

我猜需要全面更新:

  • 数据源包含 7 项
  • 当绑定到组合框时,DisplayMember并且ValueMember被适当地实现
  • 数据绑定后,通过gui,我可以清楚地看到组合框中的7个项目
  • combobox.DataSource.Count = 7combobox.Items.Count = 0

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

这是一张更好理解的图片(但我很确定我错过了一些简单的东西)

截屏

4

3 回答 3

24

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

于 2012-08-07T14:57:31.400 回答
1

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

于 2016-01-05T11:24:34.463 回答
0

我有同样的问题,但在我的情况下,它是由调用引起的

combobox.Sorted = True

InitializeComponent. 我猜这个调用初始化Items,然后阻止分配DataSource更新它(Items)。

于 2018-12-05T10:49:47.047 回答