我的App中有一个TreeView对象,它由文件夹层次结构填充。我想尝试"攀登"在这个层次结构中,我可以获得当前所选项目的路径。我试图使用TreeViewItem.Parent得到的DepedencyObject,但我很困惑如何将父亲作为TreeViewItem本身,所以我可以继续"攀登"起来。
有没有办法将DependencyObject转换为TreeViewItem?
答案 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;
}