我有一个ListBox
,可以包含数百个项目。我已经将以下属性添加到列表框中,性能很好,即使我分组/取消组合(使用x作为ListCollectionView
)
<ListBox ItemsSource="{Binding x}" VirtualizingStackPanel.IsVirtualizing="True" VirtualizingStackPanel.VirtualizationMode="Recycling"/>
但是,如果我将ListBox.GroupStyle
设置为任何内容,即使是最简单的事情,也需要几秒钟才能从分组切换 - &gt;未分组。
<ListBox.GroupStyle>
<GroupStyle>
<GroupStyle.ContainerStyle>
<Style TargetType="GroupItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<ItemsPresenter/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</GroupStyle.ContainerStyle>
</GroupStyle>
</ListBox.GroupStyle>
我认为原因是当我切换到未分组时,WPF正在丢弃容器的缓存(在VirtualizingStackPanel
中由循环模式启用)并且必须从头开始重建它们。
有没有办法改善这里的表现?任何人都可以建议我可以尝试的东西,或者我可以查看的资源吗?
答案 0 :(得分:0)
查看这篇文章,也许会有所帮助
我也在stackoverflow上发现了类似的问题:WPF ListView Virtualization Grouping
和另一个(即使有答案)WPF Data virtualizing ListView