2014-09-10 6 views
8

में नए प्रदर्शन सदस्य के लिए बाध्य नहीं किया जा सकता है मैं एक वर्ग है जो मुझे इस त्रुटिबता गया

public class Item 
{ 
    public string Name; 
    public int Id 

    public Item(string name, int id) 
    { 
     Name = name; 
     Id = id; 
    } 
} 

यहाँ देना है मेरी समारोह

var lstItems = new List<Item>(); 
while(...) 
{ 
    lstItems.Add(new Item(sAd_Ref, Convert.ToInt32(sAd_ID))); 
} 

comboBox1.DataSource = lstItems; 
comboBox1.ValueMember = "Id"; 
comboBox1.DisplayMember = "Name"; 

दूसरा अंतिम पंक्ति मैं

के अपवाद हो रही है पर है

नए प्रदर्शन सदस्य से जुड़ नहीं सकते हैं।

उत्तर

11

आपको Name और Id गुण बनाना चाहिए। आप फ़ील्ड में ComboBox बाध्य नहीं कर सकते हैं।

public string Name { get; set; } 
public int Id { get; set; } 

यह भी docs में कहा गया है:

ValueMember Property: हो जाता है या सेट संपत्ति System.Windows.Forms.ListControl में आइटम के लिए वास्तविक मूल्य के रूप में उपयोग करने के लिए।

+0

यह धन्यवाद काम किया – user3244721

+0

@Selman Genç मैं जानता हूँ कि यह एक साल का है - लेकिन आप ने कहा आप कर सकते हैं खेतों में कॉम्बोबॉक्स को बांधें। - क्या आपके पास इसका संदर्भ है क्योंकि मेरा कोड काम करता है। – Ken

8

मुझे पता है कि पोस्ट पुराना है लेकिन स्वीकार्य उत्तर सही नहीं है। ओप को यह दिखाने के लिए आवश्यक था कि वह डिस्प्ले मेम्बर, वैल्यूमम्बर और डेटासोर्स को कैसे निर्दिष्ट कर रहा था और फिर कोड की अतिरिक्त पंक्ति को नोट करें।

comboBox1.DisplayMember="Name"; 
comboBox1.ValueMember = "Id"; 
comboBox1.DataSource = lstItems; 
comboBox1.BindingContext = this.BindingContext; 
+0

ऑर्डर वास्तव में प्रासंगिक नहीं है, आपको गुणों का उपयोग करने की आवश्यकता है। – Oliver

+0

यह मेरे लिए काम करता था लेकिन कुछ पृष्ठभूमि या डॉक्टर संदर्भ क्यों उपयोगी होगा। –

+2

@RysJones मैं इसके लिए प्रलेखन चाहता था, मुझे इसे ऑनलाइन साल पहले मिला। Combobox में एक बग प्रतीत होता है और यह केवल कुछ स्थितियों में होता है। मुझे लगता है कि यह तब होता है जब डेटासोर्स एक सूची प्रकार स्रोत ऑब्जेक्ट होता है और डेटाटेबल नहीं होता है। मुझे पता है कि यह अजीब है लेकिन यह इस अनूठी परिस्थिति में मेरे लिए काम करता था - मुझे इस तरह से व्यवहार करने के लिए गहराई से डरने की परेशानी नहीं थी। तुम जानते हो .... मुझे अपनी परियोजना पूरी करने की ज़रूरत है। – Ken

0

मेरे मामले में, मैं गुण है कि Browsable विशेषता false करने के लिए सेट किया था करने के लिए बाध्य किया।

आईई। त्रुटि की वजह से हुआ:

[Browsable(false)] 
public string MyProperty { get; set; } 

और मैं बस विशेषता को हटाने के द्वारा इसे हल किया:

public string MyProperty { get; set; } 
संबंधित मुद्दे