我的App中有一个TreeView对象,它被文件夹层次结构填充。我想尝试"爬"上这个层次结构,这样我就可以得到当前选择的项目的路径。我已经尝试使用的依赖对象,你得到与TreeViewItem。父元素,但我很困惑如何才能将父元素作为TreeViewItem本身,这样我就可以继续"爬"上去。
是否有任何方法将DependencyObject转换为TreeViewItem?
你可以从你的childNode(总是将父节点转换为TreeViewitem,直到它不可能到达treeview的根节点):
string path =(string) ChildItem.Header;
TreeViewItem currentItem = ChildItem;
while (currentItem.Parent is TreeViewItem)
{
currentItem = currentItem.Parent as TreeViewItem;
path = (string) currentItem.Header + "/" + path;
}
这就行了:
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;
}