簡體   English   中英

在另一個組合框更改選定值時設置ComboBox選定項c#

[英]set ComboBox selected item when another combobox changes the selected value c#

class ComboBoxCompany
{
    public string Code;
    public string Name;
    public string Database;

    public ComboBoxCompany(string code, string name, string database)
    {
        Code = code;  Name = name; Database = database;
    }

    public override string ToString()
    {
        // Generates the text shown in the combo box
        return Name;
    }
}

class ComboBoxDatabase
{
    public string cmpName;
    public string dbName;

    public ComboBoxDatabase(string cmpname, string dbname)
    {
        cmpName = cmpname; dbName = dbname;
    }

    public override string ToString()
    {
        // Generates the text shown in the combo box
        return cmpName + " - " + dbName;
    }
}

這些是2個組合框的類,因此當我選擇第一個組合框(ComboBoxCompany)的值時,我希望第二個組合框(ComboBoxDatabase)從第一個組合框“ Database” -Value中選擇“ dbName” -Value

我試過了,但是沒有

    private void cbxBranch_SelectedIndexChanged(object sender, EventArgs e)
    {
        cbxDatabase.SelectedItem = (cbxCompany.SelectedItem as ComboBoxCompany).Database;
    }

通過設置(cbxCompany.SelectedItem as ComboBoxCompany).Database您嘗試將所選項目設置為不“存在”的數據庫字符串,因為似乎您添加了一個類作為comboboxitem。

您需要將SelectedItem設置為真實對象。 您可以使用linq(示例代碼)進行搜索:

var company = cbxCompany.SelectedItem as ComboBoxCompany;
if(company == null)
   return;
var dbItem = _databaseComboBoxItems.FirstOrDefault(x=>x.CompanyName = company.CompanyName && x.Database == company.DatabaseName);
if(dbItem == null)
  return;
 cbxDatabase.SelectedItem = dbItem;

暫無
暫無

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

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