需要使用Virtualization和Load On Demand进行WPF TreeView搜索的示例

akj*_*shi 5 wpf treeview virtualization search lazy-loading

我需要在WPF中实现搜索功能TreeView(基本上我需要记住最后一个用户选择).我已经尝试了各种方法建议,但没有任何工作,因为virtualizationTreeView和子节点启用仅在父节点展开(延迟加载)时加载.

任何人都知道有这三个东西(虚拟化,按需加载和搜索)一起实施的样本?

akj*_*shi 3

看看这个MSDN 论坛帖子,来自 MS 的 Bob 解释了实现此功能的问题。

原因是 VirtualizingStackPanel尝试生成一个用于显示的项目,但项目中已有一个生成器来生成扩展项目(在 OnTreeNodeExpanded事件处理程序中)。与两个生成器发生冲突。 VirtualizingStackPanel可以在运行时生成所需的项目,也可以在BringIndexIntoView 方法中生成它们。该方法的代码StartAt是检查生成器,如果它不为空,则抛出异常“无法 StartAt在内容生成正在进行时调用”。因此,该示例将所有项目填充到 中的绑定源 InitializeComponent(),并让该 BringIndexIntoView方法生成该项目的容器。

该线程中还附有重现该问题的示例。

所以目前这种方法似乎没有解决方案:(