【问题标题】:Moving up the TreeViewItem hierarchy向上移动 TreeViewItem 层次结构
【发布时间】:2015-07-10 11:46:48
【问题描述】:

我的应用中有一个 TreeView 对象,该对象由文件夹层次结构填充。我想尝试“爬上”这个层次结构,这样我就可以获得当前选定项目的路径。我尝试使用通过 TreeViewItem.Parent 获得的 DepedencyObject,但我很困惑如何将父级作为 TreeViewItem 本身,因此我可以继续“爬”上去。

有什么方法可以将 DependencyObject 转换为 TreeViewItem?

【问题讨论】:

  • A TreeViewItem 是 DependencyObject ......你试过投射它吗?
  • 不知道我可以投它。我猜应该试过了。

标签: c# wpf user-interface treeview


【解决方案1】:

你可以从你的 childNode 爬上去(总是将父级强制转换为 TreeViewitem 直到它不可能 -> 到达树视图的根):

string path =(string) ChildItem.Header;

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

【讨论】:

    【解决方案2】:

    这将起作用:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-28
      • 2011-04-21
      • 1970-01-01
      • 1970-01-01
      • 2011-07-21
      • 1970-01-01
      • 1970-01-01
      • 2013-06-24
      相关资源
      最近更新 更多