需要一个带有虚拟化和按需加载的WPF TreeView搜索示例

6

我需要在WPF TreeView中实现搜索功能(基本上是需要记住上次用户选择的内容)。我尝试了各种建议的方法,但由于我的TreeView启用了虚拟化,子节点仅在展开父节点时加载(延迟加载),所以没有任何方法可行。

有人知道一个已实现这三个功能(虚拟化、按需加载和搜索)的示例吗?

1个回答

3
请查看这个MSDN论坛帖子,Bob from MS解释了在实现此功能时出现的问题。
起因是VirtualizingStackPanel尝试生成用于展示的项,但在您的项目中已经有一个生成器来生成扩展项(在OnTreeNodeExpanded事件处理程序中)。这导致两个生成器之间发生冲突。VirtualizingStackPanel可以在运行时生成所需的项,而且它也会在BringIndexIntoView方法中生成这些项。StartAt方法的代码是用来检查生成器的,如果生成器不为空,则抛出异常“无法在内容生成正在进行时调用StartAt”。因此,该示例会在InitializeComponent()中填充所有项到绑定源中,并让BringIndexIntoView方法生成该项的容器。
该线程中还附有一个重现问题的示例。
因此,目前似乎没有解决这种方法的方案 :(

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接