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

그러나 무엇을 I 보고 싶은 것은 다음과 같습니다 :

VersionA 
    Server2 
    Server3 
VersionB 
    Server1 
    Server4 

참고 :이 계층에는 항상 2 개의 레벨이 있습니다. 도와주세요.

+0

설명을 위해 'myTreeView'와'resultView'는 동일합니까? –

+0

예, 죄송합니다. 고치겠습니다. –

답변

0

TreeNode에는 자신 만의 Nodes 목록이 있습니다. 이것이 바로 나무를 만드는 방법입니다. 트리에 브랜치 (또는 잎)를 추가하려면, 현재 노드의 자손을 추적해야합니다.

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

이 버전 노드의 잎으로 서버 노드를 추가합니다 : 코드가 가까이 간단히과 같이 내부 루프에서 운영 Add의 대상을 변경하여 수정할 수 있습니다 귀하의 경우에는

.

+0

정말 대단합니다, 정말 고마워요! –

관련 문제