Mad*_*ine 9 c# data-binding combobox winforms
我有一个绑定到DataSource的ComboBox.我想根据特定条件动态添加项目到ComboBox.所以我所做的是将选项添加到新列表,然后更改ComboBox的DataSource,如下所示:
cbo.DataSource = null;
cbo.DataSource = cbos;
cbo.DisplayMember = "Title";
cbo.ValueMember = "Value";
Run Code Online (Sandbox Code Playgroud)
然后,我检查cbo.Items.Count,它没有增加 - 它不等于DataSource的计数.我能在这做什么想法?注意这是WinForms而不是asp.net.
谢谢
Jar*_*Par 12
您是立即还是稍后检查了伯爵?ComboBox有可能实际上没有更新它的内容,直到有一个操作,如UI刷新,因此计数将关闭,直到那个时间.
如果在为ComboBox创建句柄之前更新DataSource,则可能发生这种情况.我在反射器上挖了一些代码,看起来在这种情况下不会更新项目,直到实际创建和渲染ComboBox.
如果有人在动态添加的组合框中遇到此问题,答案是确保将组合框添加到表单中容器的控件.
添加"this.Controls.Add(cbo);" 在设置数据源之前的代码,问题就消失了.