是否有一种方法可以在列表框中分组时启用容器回收

本文关键字:启用 列表 一种 方法 是否 | 更新日期: 2023-09-27 18:07:29

我有一个ListBox,它可以包含数百个项目。我在列表框中添加了以下属性,性能非常好,即使我分组/取消分组(使用x作为ListCollectionView)

<>之前之前

但是,如果我将ListBox.GroupStyle设置为任何东西,即使是最简单的东西,也需要几秒钟才能从分组切换到非分组。

<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中的回收模式启用)。

有办法提高这里的性能吗?有没有人能给我一些建议,我可以尝试一下,或者我可以看看什么资源?

是否有一种方法可以在列表框中分组时启用容器回收

看看这篇文章,也许会有所帮助

WPF: Data Virtualization

我也在stackoverflow上发现了类似的问题:WPF ListView虚拟化分组

和另一个(甚至有答案)WPF数据虚拟化ListView