【发布时间】:2019-04-04 09:55:43
【问题描述】:
我有一个字符串列表,它是 BindingSource 对象的 DataSource,而后者又是 ComboBox 的 DataSource。
当我更改列表(添加或删除字符串)时,我在 BindingSource 上调用 ResetBindings() 方法。这将按预期更新 ComboBox 中的项目,但它还将 SelectedIndex 设置为“0”,而不是未初始化的值“-1”。我想在不初始化 ComboBox 的情况下更新项目
我已经尝试在 SelectedIndexChanged 事件处理程序中处理这个问题,如下所示:
private void cmbSelectxx_SelectedIndexChanged(object sender, EventArgs e)
{
ComboBox cmb = (ComboBox)sender;
if (!cmb.Focused)
{
cmb.SelectedIndexChanged -= new EventHandler(cmbSelectxx_SelectedIndexChanged);
cmb.SelectedIndex = -1;
cmb.ResetText();
cmb.SelectedText = "";
cmb.SelectedIndexChanged += new EventHandler(cmbSelectxx_SelectedIndexChanged);
return;
}
//...
}
但这并不能解决我的问题
将控件绑定到数据代码:
bs = new BindingSource();
bs.DataSource = SomeList;
cmbSelectxx.DataSource = bs;
【问题讨论】:
标签: c# winforms data-binding