2010-01-19 12 views
9

मैं हालांकि मैं समझ नहीं कैसे लिस्टबॉक्स स्वचालित रूप से अद्यतन जब मेरे OC अपडेट करने के लिए, एक ListBox.DataSource = ObservableCollection उपयोग करने के लिए कोशिश कर रहा हूँ। मैं ओसी पर कलेक्शन चेंजेड इवेंट को हुक कर सकता हूं, हालांकि इसे अद्यतन करने के लिए मुझे सूची बॉक्स में क्या करने की ज़रूरत है?सी # ListBox ObservableCollection <T>

+0

WinForms या WPF? – McAden

+0

WinForms, लेकिन मैंने WindowsBase असेंबली को शामिल किया जिसमें ObserveableCollection शामिल है। क्या यह करने का सही तरीका नहीं है? – WedTM

+0

आईबीआईंडिंगलिस्ट द्वारा विनफॉर्म को अधिसूचित किया गया है क्योंकि जस्टिन निसनेर ने नीचे वर्णित किया है। – McAden

उत्तर

17

आपके प्रश्न के आधार पर, ऐसा लगता है कि आप WinForms एप्लिकेशन में ObservableCollection<T> का उपयोग करने का प्रयास कर रहे हैं।

ObservableCollection<T> मुख्य रूप से WPF विकास में उपयोग किया जाता है। WinForms में, नियंत्रण के लिए स्वचालित रूप से अद्यतन हो जाता है क्योंकि संग्रह में परिवर्तन आपके संग्रह को IBindingList लागू करने की आवश्यकता है।

सबसे आसान समाधान के बजाय BindingList<T> का उपयोग करना है। उसके बाद, संग्रह में परिवर्तन के रूप में आपके नियंत्रण अपडेट होना चाहिए।

MSDN: BindingList(T) Class

+0

बिल्कुल सही, यही वह है जिसे मैं ढूंढ रहा था! – WedTM

+0

या .NET 4.0 के बाहर आने के लिए प्रतीक्षा करें; 'ObservableCollection ' System.dll पर ले जाया जाएगा: http://blogs.msdn.com/bclteam/archive/2009/10/21/what-s-new-in-the-bcl-in-net-4- बीटा -2-जस्टिन-वैन-पैटन.एएसपीएक्स (अंतिम आइटम देखें) –