नीचे दी गई छवि से पता चलता है कि मेरा कोड कैसे काम करता है। जब मैं बटन 2 दबाता हूं तो सूची बॉक्स अपडेट होता है, लेकिन जब मैं बटन 1 दबाता हूं। क्यूं कर?बाध्य डेटा बदलते समय Winforms listbox अद्यतन नहीं हो रहा है
pseudo code http://i44.tinypic.com/mj69oj.gif
संबंधित सूत्रण समस्या है? यदि ऐसा है, तो मुझे कॉल (शुरुआत) को कॉल कहां जोड़ना चाहिए?
ध्यान देने योग्य एक दिलचस्प बात यह है कि यदि मैं पहले बटन 1 दबाता हूं और फिर बटन 2 बटन 1 द्वारा उत्पन्न डेटा दिखाता है तो मैं बटन 2 पर क्लिक करता हूं। तो ऐसा लगता है जैसे DoFoo द्वारा उत्पन्न डेटा कहीं भी buffered है, और फिर बटन 2 दबाए जाने के बाद सूची बॉक्स में धक्का दिया।
संपादित करें:
मैं प्रपत्र कोड को AddNumber जोड़ने की कोशिश की, और आह्वान करने के लिए जब listBox1.InvokeRequired सच रिटर्न एक फोन गयी। यह समस्या हल करता है, लेकिन डिजाइनों में सबसे अच्छा नहीं है। मैं नहीं चाहता कि जीयूआई को मॉडल के हिस्से की सूची में आइटम जोड़ने के तरीके के बारे में "चिंता" करना पड़े।
सूची सूची में आंतरिक सूची में जोड़ने के पीछे तर्क को कैसे रखा जा सकता है, जबकि सूची बदलते समय भी गुई को अपडेट किया जा रहा है?
संपादित करें 2:
अब हम पुष्टि की है कि है कि यह एक सूत्रण मुद्दा मैं छवि को नवीनीकृत किया है और अधिक बारीकी से वास्तविक कोड मैं पर काम कर रहा हूँ के डिजाइन को प्रतिबिंबित है।
जबकि लुसेरो का सुझाव अभी भी समस्या हल करता है, मैं उस चीज़ की उम्मीद कर रहा था जिसके लिए फॉर्म को डीएल या सीडीएलप्रैपर के बारे में कुछ भी जानने की आवश्यकता नहीं है।
मॉडल (ListBoxDataBindingSource आदि) बिल्कुल दृश्य के बारे में (listboxes, बटन, लेबल आदि) कुछ भी नहीं पता होना चाहिए
मैं समझता हूं कि समस्या क्या है, अब हमें सिर्फ एक अच्छे समाधान के साथ आना है :) मैं इसे एमवीसी पैटर्न के अनुसार डिजाइन करने की कोशिश कर रहा हूं, इसलिए ListBoxDa को दे रहा हूं taBindingSource (मॉडल का हिस्सा) एक नियंत्रण (दृश्य का हिस्सा) के बारे में पता है आमतौर पर खराब अभ्यास के रूप में देखा जाता है। – Tobbe
ठीक है, यह वास्तव में नियंत्रण के बारे में नहीं जानता है, लेकिन केवल सही धागे को जोड़ने के लिए हॉट कॉल मार्शल को गर्म करने की आवश्यकता है। आप अपनी खुद की मार्शलिंग क्लास बना सकते हैं जो नियंत्रण के बारे में जानता है और सूची में पास हो जाता है, ताकि यह पहलू ठीक से छिपा हुआ हो। – Lucero
(* @ टोबे: * शायद [यह उत्तर] (http://stackoverflow.com/questions/3381536/winforms-data-binding-to-business-objects-in-a-multi-threaded-scenario-without-in/3381685 # 3381685) मेरे पिछले प्रश्नों में से एक के लिए - [Winforms बिना किसी प्रसंस्करण के बहु-थ्रेडेड परिदृश्य में व्यावसायिक वस्तुओं के लिए बाध्यकारी?] (Http://stackoverflow.com/q/3381536/240733) - लागू होगा यहां।) – stakx