C# 在列表框中分组时,是否有方法启用容器回收?
我有一个C# 在列表框中分组时,是否有方法启用容器回收?,c#,wpf,performance,xaml,listbox,C#,Wpf,Performance,Xaml,Listbox,我有一个列表框,可以包含数百个项目。我已经向列表框添加了以下属性,即使我分组/取消分组(使用x作为ListCollectionView),性能也非常好 我认为这是因为当我切换到“取消分组”并且必须从头开始重建容器时,WPF正在丢弃容器缓存(通过virtualzingstackpanel中的循环模式启用) 这里有没有提高性能的方法?有人能给我推荐一些我可以尝试的东西或者我可以查看的资源吗?查看这篇文章,也许会有帮助 此外,我在stackoverflow上发现了类似的问题: 另一个(即使有答案)看
列表框
,可以包含数百个项目。我已经向列表框添加了以下属性,即使我分组/取消分组(使用x作为ListCollectionView
),性能也非常好
我认为这是因为当我切换到“取消分组”并且必须从头开始重建容器时,WPF正在丢弃容器缓存(通过virtualzingstackpanel
中的循环模式启用)
这里有没有提高性能的方法?有人能给我推荐一些我可以尝试的东西或者我可以查看的资源吗?查看这篇文章,也许会有帮助 此外,我在stackoverflow上发现了类似的问题:
另一个(即使有答案)看起来WFP 4.5将获得分组的虚拟化支持: <ListBox ItemsSource="{Binding x}" VirtualizingStackPanel.IsVirtualizing="True" VirtualizingStackPanel.VirtualizationMode="Recycling"/>
<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>