के साथ अजीब समस्या मैं एक विंडोज़ एप्लिकेशन लिख रहा हूं और एक सूची बॉक्स नियंत्रण का उपयोग कर रहा हूं। मैं विजुअल स्टूडियो सी # 2008 एक्सप्रेस संस्करण के साथ विकास कर रहा हूं।ListBox.DataSource
मैं एक डेटा उद्देश्य यह है कि इस
public class RootObject
{
public List<SubObject> MySubObjects{ get; set;}
}
मैं अपने फार्म पर एक ListBox, और यह भी एक संपत्ति "MyRootObject" जो, जाहिर है, एक RootObject रखती है मिल गया है की तरह कुछ लग रहा है मिल गया है। जब नियंत्रण आरंभ नहीं हो जाता, मैं सेट:
_listBox.DataSource = MyRootObject.MySubObjects;
अब, जब प्रपत्र लोड हो जाए, मैं डिबग और देखो डेटास्रोत ठीक से सेट किया जा रहा है कि। लेकिन कुछ भी प्रदर्शित नहीं होता है। मैंने SubObject की ToString() विधि को ओवरराइड कर दिया है और इसे भी बुलाया नहीं जा रहा है। मैंने _listBox.DisplayMember को SubObject की एक संपत्ति पर सेट करने का प्रयास किया ताकि यह देखने के लिए कि वहां कुछ समस्या है या नहीं, लेकिन अभी भी कुछ भी नहीं है। मैंने डेटासोर्स सेट करने के बाद _listBox.Update() और _listBox.Refresh() को कॉल करने का प्रयास किया, लेकिन फिर भी कोई प्यार नहीं। डेटासोर्स में सभी डेटा है ... यह सिर्फ इसे प्रदर्शित करने से इनकार कर रहा है।
इसलिए जब डीबगिंग, मैं WTF सोचा और मैं सिर्फ पर्याप्त
_listBox.DataSource = new List<SubObject>{ new SubObject(), new SubObject() };
ज़रूर करना का फैसला किया, यह काम किया, और मैं अपने लिस्टबॉक्स में सूचीबद्ध दो चीजें देखते हैं।
तो फिर, वास्तव में उत्सुक है, मैं वस्तुओं की सूची को कॉपी करने और लिस्टबॉक्स में है कि डाल, तो तरह की कोशिश करने का फैसला किया:
_listBox.DataSource = MyRootObject.MySubObjects.ToArray();
यह काम करता है! और यह अब मेरी समस्या के लिए एक कामकाज है ... लेकिन एक बहुत परेशान है। क्या किसी को पता है कि मुझे मूल रूप से _listBox.DataSource = MyRootObject.MySubObjects को सेट करने के बजाय, इसे काम करने के लिए इस तरह की वस्तुओं की सूची की प्रतिलिपि बनाने की आवश्यकता क्यों है; ? दोबारा, डाटासोर्स के पास इसे सही करने के बाद सभी सही डेटा हैं ... यह तब होता है जब यह डेटा कॉपी करता है, यह वास्तव में प्रदर्शित होता है, और जब ऐसा नहीं होता है, तो यह प्रदर्शित नहीं होता है।
मैं इस एक ही समस्या है, और यह पेज कि सूची IList के साथ-साथ IList को लागू करता है कहते हैं: https://social.msdn.microsoft.com/Forums/vstudio/en- यूएस/a58e4f37-4abd-4eff-820e-33d09a7a432d/net-classes-that-apply-ilist? Forum = netfxbcl –