2017-02-09 2 views
0

Я искал этот веб-сайт и другие для решения, но, к сожалению, все, что я пробовал там, не сработало. Я пытаюсь создать древовидную структуру, отображаемую через TreeView управление с List<>.Создайте правильную структуру дерева с помощью элемента управления 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

Это потрясающе, спасибо вам большое! –

Смежные вопросы