请问为什么这两个组合框相互触发,使得两者具有相同的价值观? 我不能共享一个列表,并有两个组合框和不同的选定文本?分享的ComboBox的DataSource
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: 好了,现在我发现的问题是,数据源是由一些的BindingContext和CurrencyManager的管理,以自动同步列表。但我觉得有人必须知道如何禁用这种行为。
我不希望用2名不同的名单,因为我希望能够在运行时修改这个单一的列表,并有改变在所有组合框反映。任何方法来实现这一点将不胜感激。
OK,我可以证实这一点。你可以(应该)简化`bind()的`只是`cbo1.DataSource =名单;` – 2011-02-01 10:47:40
@Henk有什么需要注意的? – Jake 2011-02-01 10:48:50
我不知道确切的原因,简化是更好地定义(缩小)问题。 – 2011-02-01 10:51:26