向上移动 TreeViewItem 层次结构

Moving up the TreeViewItem hierarchy

我的应用程序中有一个 TreeView 对象,它由文件夹层次结构填充。我想尝试 "climb" 提升此层次结构,以便我可以获得当前所选项目的路径。我曾尝试使用通过 TreeViewItem.Parent 获得的 DepedencyObject,但我很困惑如何才能将父级作为 TreeViewItem 本身,以便我可以继续 "climbing"。

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

这会起作用:

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;
}

你可以从你的子节点向上爬(总是将父节点转换为 TreeViewitem 直到它不可能 -> 到达树视图的根):

string path =(string) ChildItem.Header;

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