向上移动 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;
}
我的应用程序中有一个 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;
}