在WPF树视图中获取FullPath?如果我以编程方式创建一个WPFTreeView,例如://TreeViewtreeView;<-在设计器中添加TreeViewItemrootNode=newTreeViewItem();rootNode.Header="RootNode"treeView.Items.Add(rootNode);TreeViewItemsubNode1=newTreeViewItem();subNode1.Header="SubNode1";rootNode.Items.Add(subNode1);TreeViewItemsubNode2=newTreeViewItem();subNode2.Header="子节点2";rootNode.Items.Add(subNode2);但是,我想要获取树视图中节点的路径,就像System.Windows.Forms.TreeNode类中的FullPath属性一样。所以subNode2的路径是RootNode//SubNode2。我应该怎么办?编辑:我不是在寻找手动解决方案,但我想知道是否有像FullPath一样对FullPath的等效访问,或者我是否以错误的方式使用WPFTreeView类。例如。我看过DisplayMemberPath和SelectedValuePath,但它们似乎没有提供我想要的结果。查看我的回答:Silverlight:DetermineParentTreeViewItem?然后确定路径很简单:publicstringGetFullPath(TreeViewItemnode){if(node==null)thrownewArgumentNullException();varresult=Convert.ToString(node.Header);对于(vari=GetParentItem(node);i!=null;i=GetParentItem(i))result=i.Header+"\"+result;返回结果;}请参阅下面的代码。所以这个函数返回一个堆栈,其中最顶层的项目将是根,最后一个项目将是元素的直接父级。以上就是C#学习教程:GetFullPathintheWPFtreeview?如果分享的内容对你有用,需要进一步了解C#学习教程,希望你多多关注——publicpartialclassWindow1:Window{publicWindow1(){InitializeComponent();TreeViewItemrootNode=newTreeViewItem();rootNode.Header="根节点";treeView.Items.Add(根节点);TreeViewItemsubNode1=newTreeViewItem();subNode1.Header="SubNode1";rootNode.Items.Add(subNode1);TreeViewItemsubNode2=newTreeViewItem();subNode2.Header="子节点2";rootNode.Items.Add(subNode2);TreeViewItemsubNode3=newTreeViewItem();subNode3.Header="SubNode3";subNode2.Items.Add(subNode3);}publicstaticStackGetNodeParent(UIElementelement){StacktempNodePath=newStack();//沿着元素树向上移动到最近的树视图项。TreeViewItem容器=元素作为TreeViewItem;while((element!=null)){element=VisualTreeHelper.GetParent(element)asUIElement;容器=元素作为TreeViewItem;如果(容器!=null)tempNodePath.Push(容器);}返回临时节点路径;}privatevoidtreeView_SelectedItemChanged(objectsender,RoutedPropertyChangedEventArgse){Stackpath=GetNodeParent(e.NewValueasUIElement);}}本文收集自网络,不代表立场,转载请注明出处:
