如果我以编程方式创建 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);
但是,我想获取 TreeView 中某个节点的路径,就像 System.Windows.Forms.TreeNode
类中的 FullPath
属性一样。所以 subNode2
的路径将是 RootNode//SubNode2
。我该怎么做?
编辑:我不是在寻找手动解决方案,但我想知道是否有类似 FullPath
的等效访问器,或者我是否打算以错误的方式使用 WPF TreeView 类。例如。我查看了 DisplayMemberPath
和 SelectedValuePath
,但它们似乎没有提供我想要的结果。
最佳答案
在这里看看我的回答:
Silverlight: Determine parent 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;
}
关于c# - 在 WPF TreeView 中获取 FullPath?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4309827/