2010-09-21 47 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