У меня есть список строк, который является источником данных для объекта BindingSource, который, в свою очередь, является источником данных для ComboBox.
Когда я изменяю список (добавляю или удаляю строки), я вызываю метод ResetBindings () в BindingSource. Это обновляет элементы в 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;