gpt4 book ai didi

c# - WPF:TreeView 获取父节点

转载 作者:太空宇宙 更新时间:2023-11-03 15:22:10 24 4
gpt4 key购买 nike

问题简述:

 Node 1
Child x
Child Y
Node 2
Child z

处理 treeview 类型时,选择父节点时, selectedItem 属性返回类型 treeviewItem 的对象,以下是正确工作的

 TreeViewItem parentNode = (TreeViewItem) treeView.SelectedItem;

This while, this property return a String when a value of a node is selected which means in that case the following will be true:

 Boolean valueType = treeView.SelectedItem is String; --> True 

因此,我们不能再将对象转换为 TreeViewItem

假设你有以下内容

IEnumerable<IGrouping<String, Childs>> treeModel;

而您想知道子节点属于哪个节点,您将如何从 TreeView 中获取父节点元素。

最佳答案

不幸的是,SO 中的所有帖子都指出了错误的解决方案,或者由于我解释的原因可能不再有效的解决方案。 (这同样适用于所有 Microsoft 文档,可能已过时)

似乎没有 **Built-In** 功能,所以决定设计我自己的解决方案。这个问题可以通过创建自定义的 TreeViewItem 类并添加 ParentNodeValue 属性来解决。

public class AdvancedTreeViewItem<T>: TreeViewItem{
public T ParentNodeValue {get; set;}
public T RootParentNodeValue {get; set;}
}

我们可以通过以下方式获取节点值:

var selectedValue = (AdvancedTreeViewItem<String>)treeView.SelectedItem;
MessageBox.Show(selectedValue.RootParentNodeValue);

在这种方法中,SelectedItem 属性不可能返回 String

关于c# - WPF:TreeView 获取父节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36806259/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com