C# 树视图添加节点问题

C# 树视图添加节点问题,c#,treeview,C#,Treeview,我有一个名为Holder.cs的类,包含以下内容: string name; List<String> overView; 因此,我要寻找的treeview显示屏基本上是: Overview1 name1 name2 name3 Overview2 name7 anyothernamethatbelongshere... 包含所有属于概述的名称 谢谢。您需要: 创建顶级概览X节点 将子节点添加到刚刚创建的顶级节点 将顶级节点添加到树中 对所有

我有一个名为Holder.cs的类,包含以下内容:

  string name;
  List<String> overView;
因此,我要寻找的treeview显示屏基本上是:

Overview1
   name1
   name2
   name3
Overview2
   name7
   anyothernamethatbelongshere...
包含所有属于概述的名称

谢谢。

您需要:

创建顶级概览X节点 将子节点添加到刚刚创建的顶级节点 将顶级节点添加到树中 对所有顶级节点重复此操作。
希望这有帮助

我不确定你的问题

但是假设有这个代码:

var h1 = new Holder{ name = "name1", overView = new List<string>{ "Overview1", "Overview2" } };
var h2 = new Holder{ name = "name2", overView = new List<string>{ "Overview1" } };
var h3 = new Holder{ name = "name3", overView = new List<string>{ "Overview1" } };
var h4 = new Holder{ name = "name4", overView = new List<string>{ "Overview2" } };

List<Holder> list = new List<Holder> { h1, h2, h3, h4 };

treeViewList.Nodes.Clear();

for (int i = 0; i < list.Count; i++)
{
    for (int j = 0; j < list[i].overView.Count; j++)
    {
        string overviewName = list[i].overView[j];

        //adds the overView name if doesn't exist yet
        TreeNode parent;
        if (!treeViewList.Nodes.ContainsKey(overviewName))
            parent = treeViewList.Nodes.Add(overviewName,overviewName);
        else
            parent = treeViewList.Nodes[overviewName];

        // adds the name under the overView
        parent.Nodes.Add(list[i].name);
    }
}

treeViewList.ExpandAll();
您将获得以下树:


问题实际上是将子节点名称添加到父节点概述中。概述已经显示,但不确定要使用什么结构来添加这些名称。
var h1 = new Holder{ name = "name1", overView = new List<string>{ "Overview1", "Overview2" } };
var h2 = new Holder{ name = "name2", overView = new List<string>{ "Overview1" } };
var h3 = new Holder{ name = "name3", overView = new List<string>{ "Overview1" } };
var h4 = new Holder{ name = "name4", overView = new List<string>{ "Overview2" } };

List<Holder> list = new List<Holder> { h1, h2, h3, h4 };

treeViewList.Nodes.Clear();

for (int i = 0; i < list.Count; i++)
{
    for (int j = 0; j < list[i].overView.Count; j++)
    {
        string overviewName = list[i].overView[j];

        //adds the overView name if doesn't exist yet
        TreeNode parent;
        if (!treeViewList.Nodes.ContainsKey(overviewName))
            parent = treeViewList.Nodes.Add(overviewName,overviewName);
        else
            parent = treeViewList.Nodes[overviewName];

        // adds the name under the overView
        parent.Nodes.Add(list[i].name);
    }
}

treeViewList.ExpandAll();