向上移动TreeViewItem层次结构

时间:2015-07-10 11:46:49

标签: c# wpf user-interface treeview

我的App中有一个TreeView对象,它由文件夹层次结构填充。我想尝试"攀登"在这个层次结构中,我可以获得当前所选项目的路径。我试图使用TreeViewItem.Parent得到的DepedencyObject,但我很困惑如何将父亲作为TreeViewItem本身,所以我可以继续"攀登"起来。

有没有办法将DependencyObject转换为TreeViewItem?

2 个答案:

答案 0 :(得分:1)

你可以从你的childNode上爬(总是将父节点转换为TreeViewitem unitil,这是不可能的 - >到达树视图的根目录):

string path =(string) ChildItem.Header;

TreeViewItem currentItem = ChildItem;
while (currentItem.Parent is TreeViewItem)
{
    currentItem = currentItem.Parent as TreeViewItem;
    path = (string) currentItem.Header + "/" + path;
}

答案 1 :(得分:0)

这将有效:

TreeView myTreeview = new TreeView();
//add some nodes here or import.
TreeNode parentnode = myTreeview.SelectedNode.Parent;
//or find a node using:
TreeNode parentnode = myTreeview.Nodes.Find("name"true);
//true searches in all children
//TreeNode.Parent will return null if the node has no parent

或方法:

public TreeNode getParent(TreeNode node)
{
    return node.Parent;
}