Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF TreeView-添加带子级的TreeNode_C#_Wpf_Treeview_Treenode - Fatal编程技术网

C# WPF TreeView-添加带子级的TreeNode

C# WPF TreeView-添加带子级的TreeNode,c#,wpf,treeview,treenode,C#,Wpf,Treeview,Treenode,我有TreeNode对象[namespace System.Windows.Forms]和WPFTreeView控件 我试图通过以下代码使用TreeNode数据填充此wpf控件: public partial class TreeWindow : Window { public TreeWindow(TreeNode node) { InitializeComponent(); treeView.Ite

我有TreeNode对象[namespace System.Windows.Forms]和WPFTreeView控件

我试图通过以下代码使用TreeNode数据填充此wpf控件:

   public partial class TreeWindow : Window
    {
        public TreeWindow(TreeNode node)
        {
            InitializeComponent();
            treeView.Items.Add(node);
        }
    }
此树节点在树层次结构中包含许多子节点

例如:

-母公司

--孩子

----孩子

--孩子

但是在wpf窗口中,我只得到父节点。
没有展开/折叠按钮。

您必须先将它们转换为
System.Windows.Controls.treevieItem

public TreeWindow(TreeNode node)
{
    InitializeComponent();
    treeView.Items.Add(ConvertToWpf(node));
}


TreeViewItem ConvertToWpf(TreeNode node)
{
    var wpfItem = new TreeViewItem();
    wpfItem.Header = node.Text;
    foreach(var child in node.Nodes)
    {
         wpfItem.Items.Add(ConvertToWpf(child));
    }
    return wpfItem;
}

只有一个小问题-在叶节点上,我仍然得到“展开”按钮我认为这是因为TreeViewItem有“展开”按钮。如果您使用另一个控件作为叶项(如按钮),问题就解决了