समस्या: स्क्रोल करने योग्य क्षेत्र में बड़ी मात्रा में डेटा प्रदर्शित करना भयानक प्रदर्शन और/या उपयोगकर्ता अनुभवहीनता के साथ वर्चुअलाइजेशन प्रदर्शन समस्या है।बड़े स्क्रॉल करने योग्य डेटा SL4
की कोशिश की: मूल रूप से VirtualizationMode और एक निश्चित ऊंचाई ListBox iteself पर सेट रीसायकल करने के लिए सेट के साथ आबादी वाले डेटा का एक ग्रिड को दिखाने के लिए एक ListBox में एक DataTemplate निर्धारित किया है। नीचे उदाहरण की तरह कुछ।
<ListBox x:Name="Items"
TabNavigation="Once"
VirtualizingStackPanel.VirtualizationMode="Recycling"
Height="500">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Margin="0,5">
<HyperlinkButton Content="Action" Margin="5"/>
<ContentControl
cal:View.Model="{Binding}"
VerticalContentAlignment="Stretch"
HorizontalContentAlignment="Stretch"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
ContentControl एक और विचार है कि करीब 20 स्थिर है, और 20 डेटा के लिए बाध्य TextBlocks से मिलकर आबादी वाले वस्तुओं के समग्र लेआउट प्रारूप से एक मानक <Grid>
में लाने की जाएगी।
यह ठीक काम करता है, और प्रारंभिक भार को आधा में काटता है। हालांकि, अब समस्या यह है कि मुझे ऊंचाई के लिए निश्चित आकार नहीं होने की क्षमता की आवश्यकता है, इसलिए यह अपने माता-पिता में उपलब्ध स्थान लेता है और इसका आकार भी बदला जा सकता है। @DanFox
के लिए धन्यवाद, मुझे पता चला है कि आपको वर्चुअलाइजिंग या रेंडरइंजिन का आह्वान करने के लिए ऊंचाई को ठीक करने के लिए एक फॉर्म या दूसरे को ठीक करना होगा, बस सोचता है कि इसमें अनंत कक्ष है।
प्रश्न यह है: क्या ऐसा करने का कोई बेहतर तरीका है, या बेहतर यूएक्स की अनुमति देने के लिए मैं कम से कम वर्तमान तकनीक को कैसे ठीक कर सकता हूं? मैं संभावित रूप से इन वस्तुओं में से सैकड़ों उत्पन्न कर रहा हूं इसलिए मुझे वर्चुअलाइजेशन के प्रदर्शन में वृद्धि की आवश्यकता है। हालांकि मुझे उपयोगकर्ता को विंडो का आकार बदलने और प्रभावी ढंग से स्क्रॉल करने की क्षमता बनाए रखने की अनुमति देने की भी आवश्यकता है।
किसी अंतर्दृष्टि की बहुत सराहना की जाती है, धन्यवाद और शुभ छुट्टियां!
क्या आपने स्क्रॉलव्यूयर और अन्य घटकों की ऊंचाई को अस्थायी रूप से ठीक करने का प्रयास किया है? कभी-कभी प्रदर्शन में गिरावट हो सकती है क्योंकि लेआउट इंजन ScrollViewer को अनंत ऊंचाई दे रहा है। क्षमा करें, मैं और अधिक स्पष्ट नहीं हो सकता, मैं इस क्षेत्र में थोड़ा जंगली हूँ, अब कुछ समय के लिए कोई एसएल नहीं किया है ... –
क्या आपका डेटा जल्दी से लोड हो रहा है? आप किस संग्रह प्रकार से बंधे हैं? –
@ डैन फॉक्स स्क्रॉलव्यूवर की ऊंचाई को ठीक करने के लिए बस हार्डिंग रेंडरिंग गति को प्रभावित कर सकता है? –