請問爲什麼這兩個組合框相互觸發,使得兩者具有相同的價值觀? 我不能共享一個列表,並有兩個組合框和不同的選定文本?分享的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