Перемещение вверх по иерархии TreeViewItem
В моем приложении есть объект TreeView, который заполняется иерархией папок. Я хочу попытаться "подняться" вверх по этой иерархии, чтобы получить путь к выбранному в данный момент элементу. Я попытался использовать DepedencyObject, который вы получаете с TreeViewItem.Родитель, но я в замешательстве, как я могу затем получить родителя в качестве самого TreeViewItem, так что я могу продолжать "восхождение" вверх.
Есть ли способ преобразовать DependencyObject в TreeViewItem?
2 ответа:
Вы можете подняться из вашего childNode (всегда бросая родителя в treeviewitem unitil его невозможно - > корень 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; }