मैं अपने डब्ल्यूपीएफ एप्लिकेशन के साथ प्रदर्शन में सुधार करने की कोशिश कर रहा हूं और मुझे जटिल आइटम नियंत्रण के साथ समस्याएं आ रही हैं। हालांकि मैंने वर्चुअलाइजेशन जोड़ा है, फिर भी एक प्रदर्शन समस्या है और मुझे लगता है कि मैंने क्यों काम किया है।क्या छिपे पैनलों या विस्तारकों के साथ वर्चुअलाइजेशन का उपयोग करने का कोई तरीका है?
प्रत्येक आइटम में विस्तार योग्य क्षेत्रों की श्रृंखला शामिल है। तो उपयोगकर्ता शुरुआत में सारांश देखता है लेकिन अधिक जानकारी देखने के लिए विस्तार करके ड्रिल कर सकता है। यह इस प्रकार से दिखाई देता है:
आप देख सकते हैं, वहाँ कुछ नेस्टेड ItemsControls है। तो शीर्ष स्तर के प्रत्येक आइटम में छिपे हुए नियंत्रणों का एक गुच्छा है। वर्चुअलाइजेशन ऑफ-स्क्रीन आइटम्स को लोड होने से रोकता है, लेकिन आइटम के भीतर छिपा वस्तुओं को स्वयं नहीं रोकता है। नतीजतन, अपेक्षाकृत सरल प्रारंभिक लेआउट एक महत्वपूर्ण समय लेता है। इनमें से कुछ विचारों के चारों ओर झुकाव, 87% समय पार्सिंग और लेआउट खर्च किया जाता है, और इसे लोड करने में कुछ सेकंड लगते हैं।
मैं पूरे पृष्ठ को लोड करने के लिए 2s की बजाय, (if!) उपयोगकर्ता के निर्णय लेने के लिए 200ms लेना चाहता हूं।
वास्तव में सलाह मांगना। हालांकि मैं एमवीवीएम का उपयोग कर नियंत्रण जोड़ने का एक अच्छा तरीका नहीं सोच सकता। क्या कोई विस्तारक, या दृश्यता आधारित वर्चुअलाइजेशन डब्ल्यूपीएफ में समर्थित है या क्या मैं अपना खुद का कार्यान्वयन कर रहा हूं?
87% आंकड़ा निदान से आता है:
* "आइटमों के भीतर छिपा वस्तुओं" * क्या है? वर्चुअलाइजेशन ['ContentPresenter'] (http://stackoverflow.com/a/12437064/1997232) नहीं बनाएगा, लेकिन कहीं आपके पास 'ऑब्जर्जेबल कोलेक्शन <>' है जिसे पूरी तरह से लोड किया जाना है। तो, इस '2 एस' में क्या शामिल है? क्या आपने यह देखने के लिए प्रोफाइलिंग की है कि वास्तव में एक बाधा क्या है? – Sinatr
क्या आप आइटम का हिस्सा वर्चुअलाइज़ करना चाहते हैं जो 'विस्तारक '(निर्मित वस्तुओं के लिए) के अंदर है? यदि हां, तो आप ViewModel में संक्षिप्त स्थिति को ** ** विस्तारित करते समय अधिक डेटा जोड़ सकते हैं (उदाहरण के लिए 'ऑब्जेक्ट' का उपयोग करके डेटा और डेटा-टेम्पलेट को पकड़ने के लिए कुछ दृश्य बनाने के लिए 'शून्य' नहीं)। – Sinatr
इस तरह यह लेआउट करता है। जब तक यह खुला नहीं होता तब तक आप डेटा प्राप्त करने में देरी कर सकते हैं। मुझे आश्चर्य है कि 2 सेकंड लगते हैं। – Paparazzi