2017-02-09 91 views
0

我已经通过此网站和其他人搜索了一个解决方案,但不幸的是,我尝试过的所有内容都没有奏效。 我想要实现的是通过List<>TreeView控件创建树状结构。使用TreeView控件创建适当的树状结构

这是我到目前为止有:

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

澄清,'myTreeView'和'resultView'是一样的吗? –

+0

对不起,我会更正的,谢谢 –

回答

0

每个TreeNode都有自己的Nodes列表,这是您如何构建树的方式。要将分支(或树叶)添加到树中,您需要跟踪后继的当前节点。

在你的情况下,代码接近,并且可以通过简单地改变Add的内部循环,像这样经营的目标进行修改:

foreach (var server in servers.Where(x => x.Version == version)) 
{ 
    root.Nodes.Add(server.ServerName); 
} 

这将增加服务器节点作为版本节点的叶子。

+0

太棒了,非常感谢你! –