我需要在treelist中实现增量搜索。标准是节点的名称包含特定的字符串。我发现这个建议“你应该覆盖 XtraTreeList.Handler.TreeListHandler.IncrementalSearchState类的FindNode方法”从这里http://community.devexpress.com/forums/t/15735.aspx。但我不明白如何实现这一点。DevExpress TreeList增量搜索
0
A
回答
2
一个简单的递归应该给出遍历整个树的解决方案。
private TreeListNode GetNodeByName(TreeListNodes prmNodes, String prmName)
{
foreach (TreeListNode node in prmNodes)
{
// Assume the data is present in column 0.
if (node[0].ToString().Contains(prmName, StringComparison.CurrentCultureIgnoreCase))
return node;
TreeListNode foundNode = GetNodeByName(node.Nodes, prmName);
if (foundNode != null)
return foundNode;
}
return null;
}
//---------------------------------------------------------------------------
现在,如果你做一个简单的调用,比如:
TreeListNode node = GetNodeByName (treeList.Nodes, "MyNodeName");
你会得到你想要的节点。
0
我认为这是这样的:
public class MyTreeList : DevExpress.XtraTreeList.TreeList
{
protected override DevExpress.XtraTreeList.Handler.TreeListHandler CreateHandler()
{
return new MyHandler(this);
}
internal DevExpress.XtraTreeList.Handler.TreeListHandler GetHandler() { return this.Handler; }
}
public class MyHandler : DevExpress.XtraTreeList.Handler.TreeListHandler
{
public MyHandler(TreeList tree) : base(tree) { }
protected override TreeListControlState CreateState(TreeListState state)
{
if (state == TreeListState.IncrementalSearch && this.TreeList is MyTreeList)
return new MyFinder((this.TreeList as MyTreeList).GetHandler());
return base.CreateState(state);
}
}
public class MyFinder : DevExpress.XtraTreeList.Handler.TreeListHandler.IncrementalSearchState
{
public MyFinder(DevExpress.XtraTreeList.Handler.TreeListHandler handler) : base(handler) { }
protected override TreeListNode FindNode(FindNodeArgs e)
{
////////////////////////////////////
////////////////////////////////////
////////////////////////////////////
return base.FindNode(e);
}
}
相关问题
- 1. TreeList devexpress图标
- 2. DevExpress GridView搜索
- 3. Vim增量搜索
- 4. JQuery增量搜索
- 5. DBGrid增量搜索组件
- 6. 将值添加到DevExpress TreeList的一行
- 7. 搜索条小数增量值
- 8. 按自动增量搜索数PHP/MYSQL
- 9. 检测折叠线或增量搜索(?)
- 10. OCAML增量搜索子字符大小
- 11. 在TextEdit控件中搜索Devexpress vb.net
- 12. 如何在devexpress的treelist控制前添加图像?
- 13. 如何进行数据绑定到的DevExpress的TreeList
- 14. DevExpress TreeList - 在非第一列中显示树轮廓
- 15. 如何将数据设置为devexpress的treelist
- 16. 在TreeList中选择整行时设置边框DevExpress
- 17. 更改DevExpress TreeList底层IVirtualTreeList数据源的结构
- 18. 如何在.NET中获取选定的WPF Devexpress TreeList行?
- 19. 你如何获得DevExpress TreeList节点的X,Y?
- 20. 增量索引lucene
- 21. SimpleDB增量索引
- 22. 增量表索引
- 23. 正在更新中TreeList ItemSource
- 24. 搜索像Finder的,有可能增加搜索参数栏
- 25. 如何在delphi FM2中进行增量搜索?
- 26. VSCODE - vscodevim插件增量搜索键绑定
- 27. Vim在替换期间的增量搜索
- 28. 碳Emacs的:没有'焦点在小缓冲区增量搜索
- 29. Visual Studio 2015增量搜索 - 无迹象表明?
- 30. 如何搜索,替换html文件中的+增量?
导线使用或者[深度优先(http://en.wikipedia.org/wiki/Depth-first_search)广度优先搜索算法树节点或并根据您的标准匹配节点名称。 –