2010-09-21 53 views
6

我知道如何將項目添加到組合框,但無論如何要爲每個項目分配一個唯一的ID?我希望能夠知道哪個Id與每個項目相關聯,如果它被選中。謝謝!隱藏ID與組合框項目?

回答

26

組合框中的項目可以是任何對象類型,並且顯示的值是ToString()值。

因此,您可以創建一個新的類,該類具有用於顯示目的的字符串值和隱藏的ID。只需重寫ToString函數即可返回顯示字符串。

例如:

public class ComboBoxItem() 
{ 
    string displayValue; 
    string hiddenValue; 

    //Constructor 
    public ComboBoxItem (string d, string h) 
    { 
     displayValue = d; 
     hiddenValue = h; 
    } 

    //Accessor 
    public string HiddenValue 
    { 
     get 
     { 
      return hiddenValue; 
     } 
    } 

    //Override ToString method 
    public override string ToString() 
    { 
     return displayValue; 
    } 
} 

然後在你的代碼:

//Add item to ComboBox: 
ComboBox.Items.Add(new ComboBoxItem("DisplayValue", "HiddenValue"); 

//Get hidden value of selected item: 
string hValue = ((ComboBoxItem)ComboBox.SelectedItem).HiddenValue; 
+0

哇,這太酷了,我這樣做是有點不同,但這個想法是一樣的,由於一噸! – sooprise 2010-09-21 18:14:51

+0

好,等等,現在我該如何獲得隱藏的價值? ComboBox.SelectedItem。??? – sooprise 2010-09-21 18:17:07

+0

基本上,演員是ComboBoxItem,然後獲取隱藏的價值... ((ComboBoxItem)ComboBox.SelectedItem).hiddenValue; 假設hiddenValue是公開的。您通常會爲該屬性創建一個訪問者。 – 2010-09-21 18:25:07