मैं इस वर्चुअलाइजेशन फीचर यह पता लगाने की कोशिश कर रहा हूँ, मुझे यकीन है कि अगर मैं गलत समझ रहा हूँ या क्या हो रहा है नहीं कर रहा हूँ, लेकिन मैं में आइटमों की संख्या की जांच करने के चींटियों स्मृति प्रोफाइलर उपयोग कर रहा हूँ वर्चुअलाइज्ड ट्री व्यू, और यह सिर्फ बढ़ता रहता है। मेरे पास 1,001 आइटम (1 रूट, 1000 उप-आइटम) के साथ एक वृक्ष दृश्य है, और मैं हमेशा 1,001 ट्री व्यू इटम्स, 1,001 टॉगलबटन और 1,001 टेक्स्टब्लॉक तक पहुंचता हूं। क्या वर्चुअलाइजेशन आइटम का दोबारा उपयोग नहीं करना चाहिए? यदि हां, तो मेरे पास प्रत्येक का 1,001 क्यों होगा? इसके अलावा, CleanUpVirtualizedItem कभी आग नहीं।WPF TreeView वर्चुअलाइजेशन
मुझे पता है कि अगर मैं यह गलत समझ रहा हूँ हैं और आप यह कैसे उपयोग करने के लिए पर संसाधनों है। मैंने इंटरनेट पर खोज की है लेकिन कुछ भी उपयोगी नहीं मिला है।
संपादित करें:
यहां तक कि पेड़ द्वारा प्रयुक्त स्मृति aporx से बढ़ता है। जब मैं विस्तार करता हूं और सभी वस्तुओं को स्क्रॉल करता हूं तो 4 एमबी से 12 एमबी तक।
मुझे धन्यवाद बताएं।
यह मेरा कोड है।
XAML:
<Window x:Class="RadTreeViewExpandedProblem.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Grid>
<TreeView x:Name="treeView"
VirtualizingStackPanel.IsVirtualizing="True"
VirtualizingStackPanel.CleanUpVirtualizedItem="TreeView_CleanUpVirtualizedItem">
<TreeView.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel />
</ItemsPanelTemplate>
</TreeView.ItemsPanel>
</TreeView>
</Grid>
</Window>
सी #:
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
TreeViewItem rootItem = new TreeViewItem() { Header = "Item Level 0" };
for (int i = 0; i < 1000; i++)
{
TreeViewItem itemLevel1 = new TreeViewItem() { Header = "Item Level 1" };
itemLevel1.Items.Add(new TreeViewItem());
rootItem.Items.Add(itemLevel1);
}
treeView.Items.Add(rootItem);
}
private void TreeView_CleanUpVirtualizedItem(object sender, CleanUpVirtualizedItemEventArgs e)
{
}
}
यह बाधा का बहुत बड़ा नहीं होना चाहिए, केवल वृक्षदृश्य को बांधने के लिए एक अवलोकन करने योग्य चयन का उपयोग करें और जब आवश्यक हो तो संग्रह में अपने आइटम जोड़ें - यह अधिक मूर्खतापूर्ण है वैसे भी डब्ल्यूपीएफ रास्ता, आप मैन्युअल रूप से सीधे आइटम नहीं जोड़ना चाहते हैं। – BrokenGlass
मुझे आपका विचार पसंद है। जब मुझे पेड़ पर ऊपर या नीचे स्क्रॉल करते समय मुझे और चीजों की आवश्यकता होती है तो मुझे पता चलेगा। क्या आपको लगता है कि इस दृष्टिकोण के साथ काम करेगा? – Carlo
@Calro: यकीन है, यह काम करना चाहिए – Liero