小编eng*_*mtm的帖子

WPF TreeView 隐藏项目的虚拟化性能

我有一个TreeView控件,允许用户根据关键字过滤树中的项目。VirtualizingStackPanel.IsVirtualizing="True" VirtualizingStackPanel.VirtualizationMode="Recycling"我的树上有它并且它ItemsSource是数据绑定的。我TreeViewItemVisibility设置如下:

<Setter Property="Visibility" Value="{Binding IsVisible, Converter={StaticResource BooleanToVisibilityConverter}}"/>

该树在未过滤时的性能非常好,但在加载具有大量隐藏项目的树项目时,我发现性能受到很大影响。从我在 VS 的诊断工具中看到的情况来看,在我看来,MyTreeViewItem试图加载它的不可见子项,即使它们不可见,这会导致内存和 CPU 因加载大量不可见项而受到影响。有谁之前经历过这个吗?有没有办法可以覆盖实现虚拟树项目的默认逻辑,以便隐藏项目不会被加载?

c# wpf treeview virtualization

1
推荐指数
1
解决办法
2051
查看次数

标签 统计

c# ×1

treeview ×1

virtualization ×1

wpf ×1