[英]Combobox c# SelectedItem not work
我是C#的大三學生。 我對Combobox有問題。 當我使用SelectedItem無法正常工作時,我想要什么。 SelectedItem始終返回組合框中的最后一項,但是當我使用SelectedIndex時返回正確的結果。
組合框中的示例包括3個項目:管理員,審核,推銷員。 當我使用SelectedItem時,即使選擇Admin,也總是返回Salesman。
有我的代碼:
ComboboxItem類
class ComboboxItem
{
public string Text { get; set; }
public object Value { get; set; }
public override string ToString()
{
return Value.ToString();
}
}
將項目添加到組合框
private void AddItemIntoComboBoxGroup()
{
string query = "SELECT* FROM kites_mango.staff_group; ";
DBUtility data = new DBUtility();
List<string>[] list = data.Select(query);
if (list != null && list[0].Count() > 0)
{
ComboboxItem item = new ComboboxItem();
for (int i = 0; i < list[0].Count(); i++)
{
item.Value = list[0][i];
item.Text = (list[1][i] + " - " + list[0][i]);
CbBGroup.Items.Add(item);
}
}
}
獲取選擇的項目
if (CbBGroup.SelectedItem != null)
{
MessageBox.Show(CbBGroup.SelectedIndex + "/" + CbBGroup.SelectedItem.ToString());
}
您要在for循環之前實例化ComboboxItem對象。 這樣,對於for語句中的每個循環,您都在更改同一對象的屬性,從而使列表中之前加載的對象也被修改。 也就是說,您的列表可能具有3個iten,但是它們將具有相同的值(推銷員),因為列表中的所有iten具有相同的對象引用。
只是從此更改:
ComboboxItem item = new ComboboxItem();
for (int i = 0; i < list[0].Count(); i++)
{
item.Value = list[0][i];
item.Text = (list[1][i] + " - " + list[0][i]);
CbBGroup.Items.Add(item);
}
對此:
for (int i = 0; i < list[0].Count(); i++)
{
ComboboxItem item = new ComboboxItem();
item.Value = list[0][i];
item.Text = (list[1][i] + " - " + list[0][i]);
CbBGroup.Items.Add(item);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.