我搜索过这个网站和其他人寻求解决方案,但遗憾的是我在那里尝试的一切都没有用。
我想要实现的是创建一个树状结构,通过List<>
的{{1}}控件显示。
这是我到目前为止所做的:
List<string> versions = servers.Select(s => s.Version).Distinct().ToList();
foreach (var version in versions)
{
TreeNode root = new TreeNode(version);
root.ExpandAll();
myTreeView.Nodes.Add(root);
foreach (var server in servers.Where(x => x.Version == version))
{
myTreeView.Nodes.Add(server.ServerName);
}
}
这样做的目的是在列表类型结构中创建根节点和子节点,如:
VersionA
Server2
Server3
VersionB
Server1
Server4
但我想看到的是:
VersionA
Server2
Server3
VersionB
Server1
Server4
注意:此层次结构中始终有2个级别。 请帮帮我。
答案 0 :(得分:0)
每个TreeNode
都有自己的Nodes
列表,这就是构建树的方法。要向树中添加分支(或叶子),您需要跟踪当前节点的后代。
在你的情况下,代码很接近,可以通过简单地改变内循环中运行的Add
的目标来修改代码:
foreach (var server in servers.Where(x => x.Version == version))
{
root.Nodes.Add(server.ServerName);
}
这会将服务器节点添加为版本节点的叶子。