यहाँ है कि मैं क्या है है - एक ItemsSource साथ एक ListBox एक ObservableCollection<T>
करने के लिए सेट - जहां टी अपने कस्टम एक फ़ाइल का प्रतिनिधित्व करने वर्ग, सिर्फ 2 DependencyProperties युक्त है: फ़ाइल का नाम और ThumbnailPath। - सूची बॉक्स में एक कस्टम डेटा टेम्पलेट भी परिभाषित किया गया है, ताकि इसके तहत एक छवि और फ़ाइल नाम अच्छी तरह से प्रदर्शित किया जा सके।एसिंक्रोनस रूप ObservableCollection (या कोई वैकल्पिक) को जोड़ने
सूची बॉक्स का उद्देश्य थंबनेल (इस समस्या का हिस्सा नहीं है) के साथ मौजूदा फ़ोल्डर (ट्री व्यू में चयनित) में वीडियो फ़ाइलों को प्रदर्शित करना है।
तो जब मैं ट्री व्यू में फ़ोल्डर बदलता हूं, तो ऑब्जर्वेबल कोलेक्शन को साफ़ कर दिया जाता है और फिर भर जाता है, जो सूचीबॉक्स आइटम में स्वचालित रूप से दिखाई देता है।
यहां समस्या है: यूआई अप्रतिबंधित हो जाता है और इसे अपडेट करने में कई सेकंड लगते हैं। फिर, थंबनेल के पास महत्व नहीं है (मैंने उन्हें अक्षम करने का प्रयास किया)। मुझे लगता है कि मेरी कस्टम कक्षा के 50-100 उदाहरणों का निर्माण करने का सबसे अधिक समय लगता है, और उनके दृश्य प्रतिनिधित्व - इसे प्रत्येक के लिए एक छवि वस्तु आरंभ करना है। लेकिन यह सिर्फ मेरा अनुमान है - क्या आप संभावना की पुष्टि या बहिष्कार कर सकते हैं?
मैं जाने के लिए यहां, मैं क्या पढ़ा से के बाद से और जिस तरह से मैं क्या करने की कोशिश की से थोड़ी सोचने के लिए ObservableCollection शुरुआत कर रहा हूँ नहीं हो सकता, कोई रास्ता नहीं आइटम एसिंक्रोनस रूप से जोड़ने के लिए, कम से कम अगर इन मदों DependencyObjects हैं। मैंने बैकग्राउंडवर्कर के साथ अपने क्लास इंस्टेंस बनाने और प्रोग्रेस चेंज इवेंट हैंडलर में संग्रह में जोड़ने की कोशिश की, लेकिन यह एक अपवाद फेंकता है (कुछ थ्रेडिंग बनाम निर्भरता समस्या)।
क्या ऐसा कुछ है जो मुझे याद आ रहा है? या क्या मैं ऑब्जेर्जेबल कोलेक्शन को आसानी से हटाकर और लूप के लिए सामान जोड़ने के लिए एक अच्छा पुराना एसिंक लिखकर बेहतर होगा?
सटीक अपवाद प्रकार और संदेश क्या है उपयोग कर सकते हैं -
यहाँ कुछ लिंक है जो आप के लिए जा रहा प्राप्त कर सकते हैं कर रहे हैं? – Adam
"निर्भरता स्रोत के रूप में उसी थ्रेड पर निर्भरता स्रोत बनाना चाहिए" –
'बाध्यकारी, IsAsync = True' के बारे में क्या? –