簡體   English   中英

C#中的組合框我需要在組合框中填充兩個值

[英]Combobox in C# i Need to fill two value in combo box

我的組合框的C#代碼有問題,我的代碼在這里

cmbProjectName.Items.Clear();
if (obds.Tables.Count > 0 && obds.Tables[0].Rows.Count > 0)
{
    for (int iCount = 0; iCount < obds.Tables[0].Rows.Count; iCount++)
    {
        cmbProjectName.Items.Add(obds.Tables[0].Rows[iCount]["Project_Name"].ToString()); 
    }
}

在組合框中有增值功能,但我將自己添加此商品的索引,以便在其他搜索中進行進一步操作,請建議我...

您可以創建一個類

private class Project
{
     public int ID {get; set;}
     public string Name {get; set;}

     public Project (int _id, string _name)
     {
          ID = _id;
          Name = _name
     }
}

然后,您以這種方式轉換方法

List<Project> listPrj = new List<Project>();

 if (obds.Tables.Count > 0 && obds.Tables[0].Rows.Count > 0)
 {
        for (int iCount = 0; iCount < obds.Tables[0].Rows.Count; iCount++)
        {
            listPrj.Add(new Project(int.Parse(obds.Tables[0].Rows[iCount]["Project_ID"].ToString()), obds.Tables[0].Rows[iCount]["Project_Name"].ToString());
        }    
 }

cmbProjectName.DisplayMember = Name;
cmbProjectName.ValueMember = ID;
cmbProjectName.DataSource = listPrj;

JAEP的解決方案也可以應用於桌面應用程序。 請檢查有關ValueMember MSDN頁面

指定DisplayMemberValueMemberDataSource ,可以使用ComboBo.SelectedTextComboBo.SelectedValue獲取選定的文本和選定的值。

或者,您只需要索引,就可以使用ComboBo.SelectedIndex

JAEP使用類的解決方案將起作用。 綁定到字典是另一種方式,這里您不必創建額外的類。 來源SO問題

根據您的情況,代碼如下所示。 將iCount替換為所需的索引。

cmbProjectName.Items.Clear();
Dictionary<int, string> projectsDictionary = new Dictionary<int, string>();
if (obds.Tables.Count > 0 && obds.Tables[0].Rows.Count > 0)
{
    for (int iCount = 0; iCount < obds.Tables[0].Rows.Count; iCount++)
    {
        projectsDictionary.Add(iCount, obds.Tables[0].Rows[iCount]["Project_Name"].ToString());
    }
}   
cmbProjectName.DataSource = new BindingSource(projectsDictionary, null);
cmbProjectName.DisplayMember = "Value";
cmbProjectName.ValueMember = "Key";

檢索鍵或值的代碼。

string value = ((KeyValuePair<int, string>)cmbProjectName.SelectedItem).Value;
int key =  ((KeyValuePair<int, string>)cmbProjectName.SelectedItem).Key;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM