我用这个打破了我的头脑,我将解释我有一个树视图,我需要找到一个节点,我有节点的id,但我想在列表中保存节点的跟踪
e.g。如果我想找到节点1.2.1.1
node1
node1.1
node 1.1.1
node 1.1.2
node 1.1.3
node 1.2
node 1.2.1
node 1.2.1.1
node 1.3
我的列表应该有{node1,node1.2,node1.2.1,node 1.2.1.1}
我做了一些代码,但它不起作用请帮忙!我将非常感激
这是我的代码
foreach (SFFolder item in folderBrowserTreeView.Items)
{
JumpToNode(item, recoveryFolderID);
}
void JumpToNode(SFFolder tvi, string folderID)
{
if (tvi.Id == folderID)
{
folderBrowserTreeView.Focus();
tvi.IsExpanded = true;
tvi.IsSelected = true;
return;
}
else
tvi.IsExpanded = true;
if (tvi.HasChildren)
{
tvi.Childrens = _apiShareMethods.GetChildrens(_token, tvi.Id);//this add new children from the rest api
foreach (var item in tvi.Childrens)
{
SFFolder temp = item as SFFolder;
JumpToNode(temp, folderID, localPath);
}
}
此代码在找到我想要找到的节点之前展开所有节点,而我想要的只是扩展所需的路径 节点
答案 0 :(得分:0)
我认为如果您在问题中声明所有意图,这将对您有所帮助:
var node = treeView1.Nodes.Find("Node1.2.1.1", true).First();
string[] path = node.FullPath.Split(new string[] { "\\" },StringSplitOptions.RemoveEmptyEntries);
var nodes = from s in path
let n = treeView1.Nodes.Find(s, true).First()
select n