我正在使用WPFToolkit Accordion控件,將手風琴中的項目定義爲TreeView。在WPFToolkit Accordion上啓用UI虛擬化
爲背景,這裏是XAML的相關部分:
<ScrollViewer VerticalScrollBarVisibility="Auto" CanContentScroll="True">
<layoutToolkit:Accordion DockPanel.Dock="Bottom"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
ItemsSource="{Binding FoodTypes}"
SelectionMode="ZeroOrOne"
VirtualizingStackPanel.IsVirtualizing="True"
VirtualizingStackPanel.VirtualizationMode="Recycling">
<layoutToolkit:Accordion.ContentTemplate>
<DataTemplate>
<TreeView Margin="0 0 0 0" BorderThickness="0"
ItemsSource="{Binding ChildrenView}"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
VirtualizingStackPanel.IsVirtualizing="True"
VirtualizingStackPanel.VirtualizationMode="Recycling">
本來我實現了這個只有一個TreeView(無WPFToolkit手風琴)和第二下裝載40,000項。
當我在根層次上用手風琴實現結構時,點擊擴展器的加載時間超過了7秒。這太長了。
我對應用程序進行了剖析,發現第一級中的500個項目正在遞歸測量,導致加載時間增加。看起來Accordion控件並未使用UI虛擬化。有沒有辦法讓手風琴使用UI虛擬化?如果沒有,我有什麼方法可以提高手風琴的性能,因此它可以更快地加載一級物品?