我有一个TreeView控件,允许用户根据关键字过滤树中的项目。VirtualizingStackPanel.IsVirtualizing="True" VirtualizingStackPanel.VirtualizationMode="Recycling"我的树上有它并且它ItemsSource是数据绑定的。我TreeViewItem的Visibility设置如下:
<Setter Property="Visibility" Value="{Binding IsVisible, Converter={StaticResource BooleanToVisibilityConverter}}"/>
该树在未过滤时的性能非常好,但在加载具有大量隐藏项目的树项目时,我发现性能受到很大影响。从我在 VS 的诊断工具中看到的情况来看,在我看来,MyTreeViewItem试图加载它的不可见子项,即使它们不可见,这会导致内存和 CPU 因加载大量不可见项而受到影响。有谁之前经历过这个吗?有没有办法可以覆盖实现虚拟树项目的默认逻辑,以便隐藏项目不会被加载?