【问题标题】:Need a sample for WPF TreeView search with Virtualization and Load On Demand需要一个带有虚拟化和按需加载的 WPF TreeView 搜索示例
【发布时间】:2010-09-15 07:40:28
【问题描述】:
我需要在 WPF TreeView 中实现搜索功能(基本上我需要记住最后一次用户选择)。我尝试了各种建议的方法,但没有任何效果,因为在我的TreeView 中启用了virtualization,并且仅在扩展父节点时才加载子节点(延迟加载)。
有谁知道同时实现这三件事(虚拟化、按需加载和搜索)的示例?
【问题讨论】:
标签:
wpf
search
treeview
lazy-loading
virtualization
【解决方案1】:
查看this MSDN 论坛帖子,来自 MS 的 Bob 解释了实现此功能的问题。
原因是
VirtualizingStackPanel尝试生成
用于显示的项目,但它有一个
生成器已经在您的项目中
生成展开的项目(在
OnTreeNodeExpanded 事件处理程序)。它
与两个生成器发生冲突。
VirtualizingStackPanel可以生成
运行时所需的项目,它也
在BringIndexIntoView 中生成它们
方法。 StartAt 方法的代码
是检查发电机,如果不是
null,抛出异常“无法调用
StartAt 内容生成时
进度”。因此,样本填充
绑定源中的所有项目
InitializeComponent(),然后让
BringIndexIntoView 生成方法
项目的容器。
该线程中还附有重现该问题的示例。
所以目前这种方法似乎没有解决方案:(