Могу ли я спросить, почему оба comboboxs запускают друг друга так, что обе имеют одинаковые значения? Не могу ли я поделиться одним списком и иметь 2 комбобокса с другим выделенным текстом?
private void Form1_Load(object sender, EventArgs e)
{
BindingList<string> list = new BindingList<string>();
list.Add("A");
list.Add("B");
list.Add("C");
list.Add("D");
bind(cbo1, list);
bind(cbo2, list);
}
private void bind(ComboBox combobox, BindingList<string> list)
{
// commented lines are in actual code,
// but appears unimportant in this question
//combobox.DropDownStyle = ComboBoxStyle.DropDown;
//combobox.AutoCompleteSource = AutoCompleteSource.ListItems;
//combobox.AutoCompleteMode = AutoCompleteMode.Suggest;
combobox.DataSource = list;
//combobox.Focus();
//combobox.Text = string.Empty;
//combobox.SelectedText = string.Empty;
}
UPDATE: Хорошо, теперь я выяснил, что проблема заключается в том, что DataSource управляется некоторыми BindingContext и CurrencyManager для автоматической синхронизации списка. Но я чувствую, что кто-то должен знать, как отключить это поведение.
Я не хочу использовать 2 разных списка, потому что я хочу иметь возможность изменять этот единственный список во время исполнения и отражать изменения на всех ComboBox. Любой метод достижения этого был бы весьма полезен.