2010-09-21 16 views
6

मुझे पता है कि कॉम्बोबॉक्स में आइटम कैसे जोड़ना है, लेकिन क्या प्रत्येक आइटम में एक अद्वितीय आईडी असाइन करने के लिए वैसे भी है? मैं यह जानना चाहता हूं कि प्रत्येक आइटम से कौन सा आईडी जुड़ा हुआ है यदि यह कभी भी चुना गया है। धन्यवाद!छिपी हुई आईडी?

उत्तर

26

किसी कंबोबॉक्स में आइटम किसी ऑब्जेक्ट प्रकार का हो सकता है, और प्रदर्शित होने वाला मान ToString() मान है।

तो आप एक नई कक्षा बना सकते हैं जिसमें प्रदर्शन उद्देश्यों और एक छिपी हुई आईडी के लिए स्ट्रिंग मान हो। प्रदर्शन स्ट्रिंग को वापस करने के लिए बस 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

+0

ठीक है, अब मुझे छुपा मूल्य कैसे प्राप्त करें? ComboBox.SelectedItem। ??? – sooprise

+0

असल में, कास्ट कॉम्बोबॉक्स इटैम है, और उसके बाद छुपा मूल्य प्राप्त करें ... ((कॉम्बोबॉक्स इटेम) कॉम्बोबॉक्स। चयनित इटैम)। HiddenValue; मानते हुए कि छुपा हुआ वाल्यू सार्वजनिक था। आप आमतौर पर संपत्ति के लिए एक एक्सेसर बनाते हैं। –

संबंधित मुद्दे