在WPF树视图中获取FullPath?

Set*_*eth 4 c# wpf

如果我以编程方式创建WPF TreeView,例如:

// TreeView treeView; <- added in the designer
TreeViewItem rootNode = new TreeViewItem();
rootNode.Header = "RootNode"
treeView.Items.Add(rootNode);

TreeViewItem subNode1 = new TreeViewItem();
subNode1.Header = "SubNode1";
rootNode.Items.Add(subNode1);

TreeViewItem subNode2 = new TreeViewItem();
subNode2.Header = "SubNode2";
rootNode.Items.Add(subNode2);
Run Code Online (Sandbox Code Playgroud)

但是,我想在树视图中获取某个节点的路径,就像类中的FullPath属性一样System.Windows.Forms.TreeNode.因此,路径subNode2将是RootNode//SubNode2.我该怎么做呢?

编辑:我不是在寻找手动解决方案,但是我想知道是否存在类似的访问器,FullPath或者我是否正在以错误的方式使用WPF TreeView类.例如.我看DisplayMemberPathSelectedValuePath,但他们似乎并没有提供结果我之后.

Lex*_*kov 6

看看我的回答:

Silverlight:确定父TreeViewItem?

确定路径然后很简单:

public string GetFullPath(TreeViewItem node) 
{
  if (node == null)
    throw new ArgumentNullException();

  var result = Convert.ToString(node.Header);

  for (var i = GetParentItem(node); i != null; i = GetParentItem(i))
    result = i.Header + "\\" + result;

  return result;
}
Run Code Online (Sandbox Code Playgroud)