2017-02-09 94 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

太棒了,非常感謝你! –