将列表绑定到组合框后,其dataSource.Count为5,但组合框项目计数为0。 怎么会这样?
我习惯于Web编程,这是在Windows窗体中。
因此,不存在combo.DataBind();
方法。
这里的问题是,我正在尝试以编程方式设置所选项目。由于我没有看到combo.Items集合已填满,我无法设置所需的项目。
更新
我猜需要全面更新:
DisplayMember
和ValueMember
已正确实施combobox.DataSource.Count = 7
和combobox.Items.Count = 0
问题出在这里;因为在数据绑定之后,组合框的ItemCollection中没有任何项目;我无法搜索匹配并设置合适的一个。
这是一个更好理解的图像(但我很确定我很想念......)
答案 0 :(得分:21)
在ddl.BindingContext = new BindingContext();
分配之前添加BindingSource
后,一切正常。
答案 1 :(得分:1)
如果您在debuger中展开DataSource项目,您可能会注意到列表中的第一个元素为空。这就是DataSource不呈现ComboBox项目的原因。从列表中删除空项应该完成所有工作;
答案 2 :(得分:0)
我遇到了同样的问题,但就我而言,这是由于致电引起的
combobox.Sorted = True
在InitializeComponent
中。我猜想该调用会初始化Items
,然后阻止对DataSource
的赋值更新(Items
)。