2010-09-21 16 views
6

Bir ComboBox'a öğe eklemeyi biliyorum, ancak her bir öğeye benzersiz bir kimlik atamak için var mı? Seçilmişse, her bir öğeyle hangi kimliğin ilişkilendirildiğini bilmek istiyorum. Teşekkürler!ComboBox Öğeleri İle Gizli Kimlik?

cevap

26

Bir combobox'taki öğeler herhangi bir nesne tipinde olabilir ve görüntülenen değer ToString() değeridir.

Bu nedenle, görüntüleme amaçları ve gizli bir kimlik için dize değeri olan yeni bir sınıf oluşturabilirsiniz. Ekran dizesini döndürmek için ToString işlevini geçersiz kılın. Örneğin

:

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; 
    } 
} 

Sonra kodunuzda:

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

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

Vay, ben biraz farklı yaptım serin, ama fikir bir ton teşekkürler aynıdır! – sooprise

+0

Tamam, şimdi gizli değeri nasıl alabilirim? ComboBox.SelectedItem. ??? – sooprise

+0

Temel olarak, döküm ComboBoxItem için ve sonra gizli değer olsun ... ((ComboBoxItem) ComboBox.SelectedItem) .hiddenValue; GizliValue'nin genel olduğunu varsayarsak. Genellikle mülk için bir erişimci oluşturursunuz. –