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