2013-10-14 67 views
-4

我創建了兩個列表,一個名爲汽車名稱,它們顯示在一個名爲combo_car的組合框中,另一個名爲carprices的列表保存每輛車的價格,與汽車名稱列表相似地排序,我想現在當我在組合框中選擇一個汽車名稱時,它的等價價格出現在文本框中,那麼我該怎麼辦?在C#中鏈接兩個列表

+0

您正在使用哪個GUI庫? WPF,WinForms,還有別的? – jeyk

+0

可以使用字典 – Rohit

+0

您應該創建一個對象來保存這兩個東西,並把它們放到一個列表中。 –

回答

0

它是WPF或WFA?

不知道如果我正確地得到你的意圖,但SelectedIndexChanged事件添加到您的組合框,並把下面的代碼在那裏:

private void combo_car_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     if (combo_car.SelectedIndex != -1) 
     { 
      textBox1.Text = listBox2[combo_car.SelectedIndex].ToString(); 
     }   
    } 

反正使用字典是更好的選擇。

0

我覺得你最好使用一個字典。在這裏您可以將價格保存到汽車上直接訪問它。

0

的指數變化添加事件:

combo_car.SelectedIndexChanged += (s, e) 
{ 
    if(combo_car.SelectedIndex != -1) 
    { 
     textBox1.Text = carprices[combo_car.SelectedIndex].ToString(); 
    } 
} 
2

我會建議使用的Dictionary而不是兩個獨立的列表。關鍵是Car,價值是它的價格。

然後你可以使用carDictionary.Keys源的組合框,並得到它的價格由價值:

var carDictionary = new Dictionary<String, Decimal>(); 
// add all cars 

檢索價格:

decimal price = carDictionary[carCombo.Text];