【发布时间】:2012-01-05 19:34:10
【问题描述】:
我的 C# winform 中有一个 TreeView。我希望能够通过搜索框添加搜索功能。 基本上当用户输入字母时(我猜是 _TextChanged 事件),我只显示包含输入字母的子节点的节点...
我的 TreeView 包含 53 个父节点,总共超过 15000 个节点,所以我需要一些高性能的东西。我从加载到 DataTable 的 csv 构建 TreeView,然后进行查询以获取具有关联子节点的父节点...
更新
我有个主意。 最终目标是当用户双击子节点时,它会被添加到 listView。
我首先在一个简单的列表视图中实现了这个搜索功能,我没有将我的数据分类。
我的想法是,一旦用户开始输入内容,我就会关闭树视图并改为显示列表视图...
我会尝试并实施,看看它在性能方面有什么好处...欢迎任何对此想法的批评。
【问题讨论】:
-
15000 - 如果您在现代 PC 上运行,文本节点不会太多。你甚至可以过滤树,关键是要有一个聪明的策略来避免性能问题。我将尝试描述一个。列表的解决方案在技术上是可以的,但我猜不是预期的和最好的用户体验。
-
你试过暴力破解方法了吗?一个好的 ole foreach(ParentNode.ChildNodes 中的 TreeNode 节点)?
标签: c# winforms filter treeview