3
我有一個組合框DropDownStyle
設置爲DropDown
。我希望用戶可以輸入一個新項目。通過離開控件,我想將新項目添加到下層數據源。如何使用組合框將新項目添加到數據源?
但是,當用戶鍵入已存在的名稱時,它必須選擇現有的名稱。
我該怎麼做?
我有一個組合框DropDownStyle
設置爲DropDown
。我希望用戶可以輸入一個新項目。通過離開控件,我想將新項目添加到下層數據源。如何使用組合框將新項目添加到數據源?
但是,當用戶鍵入已存在的名稱時,它必須選擇現有的名稱。
我該怎麼做?
試試這個辦法:
private void comboBox1_Validating(object sender, CancelEventArgs e)
{
if (comboBox1.SelectedItem == null)
{
IList list = comboBox1.DataSource as IList;
if (list != null)
{
TargetGroup group = new TargetGroup(comboBox1.Text);
list.Add(group);
comboBox1.DataSource = null;
comboBox1.DataSource = list;
comboBox1.DisplayMember = "Caption";
comboBox1.SelectedItem = group;
}
}
}
如果無法識別的文本框控件selectedItem設置用戶類型爲null。所以我們創建新項目,設置它的屬性並將其添加到列表中。接下來,我們重新綁定到DataSource,讓ComboBox瞭解到有變化。如果使用BindingList而不是簡單列表,則清除DataSource並重新設置的部分將不是必需的。
編輯:忘了添加 - 如果你設置AutoSuggest和AutoSuggestList,這將工作得更好。
什麼是您的基礎數據源? – rene 2012-03-02 23:21:04
對象列表(TargetGroup) – Martijn 2012-03-02 23:28:32