重置数据源后,组合框项未刷新
本文关键字:刷新 组合 置数据 数据源 | 更新日期: 2023-09-27 18:15:30
我在Win Form中有两个组合框,我总是像这样将列表设置为数据源:
aComboBox.DataSource = someList;
foreach(Object obj in aComboBox.Items) {
// do something
}
这对我来说非常好,但是,当我试图像这样重置数据时,我有一些麻烦:
aComboBox.DataSource = null;
aComboBox.DataSource = someOtherList;
foreach(Object obj in aComboBox.Items) {
// do something else
}
DataSource重置成功,但这不会触发重置Items。我试着打电话给aComboBox.Items.Clear()
清理项目,没有重置发生。
看起来这一切都是因为表单被另一个表单"拥有",我在父表单中有child.Show(this)
,以便方便地从子表单中访问父表单的方法。
此外,使用BindingSource来处理数据绑定也可以达到这个目的。这是我所做的:
BindingSource bs = new BindingSource;
aComboBox.DataSource = bs;
bs.DataSource = someList;
//
// after some processing
//
bs.DataSource = null;
bs.DataSource = someOtherList;
按此顺序尝试以下步骤
cmbBox.Items.Clear();
cmbBox.DataSource = SomeOtherList;
cmbBox.DataBind();