老问题,但我在我的应用程序中遇到了同样的问题,如何搜索分层树节点。
我想分享一个对先前解决方案提案的更正。当递归调用 FindNodeRecursive() 时,递归调用的返回值永远不会被评估或分配给变量。因此,您总是会经历 foreach 循环并且返回值为 null。
更正和测试的功能代码(WPF C#):
RadTreeNode FindNodeRecursive(RadTreeNodeCollection nodes, string value)
{
RadTreeNode ret = null;
foreach (RadTreeNode node in nodes)
{
if(node.Value == value)
return node;
if (node.Nodes.Count > 0)
{
ret = FindNodeRecursive(node.Nodes, value);
}
return ret;
}
}
功能使用:
var node = FindNodeRecursive(PagesTreeView.Nodes, i.ToString());
if (node != null) // found
{
;
}