2011-12-26 2 views
6

में लिस्टबॉक्स में कुंजी-मूल्य नहीं कर सकता मैं Winforms का उपयोग कर एक सी # ऐप लिख रहा हूं। मेरे पास एक सूची बॉक्स है। मुझे अपना डेटा एक्सएमएल फ़ाइल, उपयोगकर्ता नाम और उनकी आईडी से मिलता है। मैं सूची बॉक्स में नाम दिखाना चाहता हूं और जब मैं उनमें से एक का चयन करता हूं, तो मैं चयनित वैल्यू प्रॉपर्टी का उपयोग करके अपनी आईडी प्राप्त करना चाहता हूं। हालांकि मैं यह नहीं कर सकता। मैंने keyValuePair की कोशिश की जो सूची बॉक्स में "[उपयोगकर्ता नाम, आईडी]" दिखाता है जो अच्छा नहीं है (नीचे कोड देखें)। मैं संक्षेप में सी # में एचटीएमएल चयन का अनुकरण कैसे कर सकता हूं? मैं सूची बॉक्स में नाम दिखाना चाहता हूं लेकिन बैकएंड में आईडी प्राप्त करना चाहता हूं। धन्यवाद ...सी #

LB_UserList.Items.Add(new KeyValuePair<string, string>(full_name, node["user_id"].InnerText)); 
+0

के संभावित डुप्लिकेट [मैं कैसे लिस्टबॉक्स पर मिलता है सी # Winforms ऐप में आइटम की "कुंजी"? (http://stackoverflow.co एम/प्रश्न/507354/कैसे-करें-i-get-at-the-listbox-items-key-in-c-sharp-winforms-app) – Moshtaf

उत्तर

14

उपयोग सी # इस के लिए dictionary,

Dictionary<string, string> list = new Dictionary<string, string>(); 
list.Add("item 1", "Item 1"); 
list.Add("item 2", "Item 2"); 
list.Add("item 3", "Item 3"); 
list.Add("item 4", "Item 4"); 

dropdown.DataSource = list; 
dropdown.DataTextField = "Value"; 
dropdown.DataValueField = "Key"; 
dropdown.DataBind(); 

संपादित करें:

listBox.DataSource = new BindingSource(list, null); 
listBox.DisplayMember = "Value"; 
listBox.ValueMember = "Key"; 
+0

डेटाटेक्स्टफ़िल्ल्ड, डेटावेल्यूफ़िल्ड और डेटाबिंड C# में ListBox में अनुपलब्ध है। डेटासोर्स के लिए, मुझे यह त्रुटि मिलती है: "कॉम्प्लेक्स डेटा बाइंडिंग डेटा स्रोत के रूप में स्वीकार करता है या तो एक आईएलआईस्ट या आईएलआईस्टसोर्स।" हालांकि, तेज़ उत्तर के लिए धन्यवाद :) – Mehmed

+1

अद्यतन उत्तर –

+0

देखें अद्यतन कोड अच्छा काम करता है। धन्यवाद! – vkapadia