2011-10-21 6 views
1

키를 사용하여 TreeNode을 만들려고하지만 키와 텍스트를 사용하는 TreeNode의 생성자가 없습니다. 내가 LINQ 쿼리 내 treeView 새로운 TreeNodes를 추가하려고으로Linq 식의 키가있는 TreeNodes 만들기

TreeNode tn = new TreeNode("text node"); 
tn.Name = "keyNode"; 

 

treeView.Nodes.Add("keyNode", "text node"); 

하지만 그 방법은, 나에 적합하지 않은 : 난 단지 다음과 같은 해결책을 발견했다.

treeView.Nodes.AddRange(
    myListOfObject.Select(x => new TreeNode(x.somePropertyForKey, 
              x.somePropertyForText)). 
        ToArray<TreeNodes>()); 

오전 내가 TreeNodes을 만들기 위해 foreach 루프를 사용 붙어 있거나이 하나의 라인 - 을 할 수있는 방법을 볼 수 있습니까 : 여기


내가 이상적으로 수행하고자하는 것입니다 이브
?

답변

7

새로운 초기화 구문은 그런 일이어야한다

TreeNode tn = new TreeNode("text node") {Name = "keynode"} ; 
+2

+1. 사실 [개체 이니셜 라이저]라고합니다 (http://msdn.microsoft.com/en-us/library/bb384062.aspx). – Ani

+0

나는 그것에 대해 몰랐다. 완전한! – Otiel

+0

그 결과를보고 싶습니다. "tree node"라는 잘못된 이름을 먼저 할당 한 다음 이름을 "keynode"로 덮어 쓰는 것 같습니다. 자식 노드를 전혀 추가하지 않는 것입니다. –

1
treeView.Nodes.AddRange(myListOfObject.Select(new TreeNode 
       { 
        Name = "keyNode", 
        TreeNode = new TreeNode[]{new TreeNode{Name="text node"}}} 
       }); 

을 위해 무엇인지 이잖아.

treeView.Nodes.AddRange(myListOfObject.Select(new TreeNode 
       (
        "keyNode", 
        new TreeNode[]{new TreeNode{Name="text node"}}} 
       ); 
:

당신은 문제가 해결되지 않을 경우, TreeNode(String, TreeNode[])

BTW이 생성자를 사용하고자하는 것입니다 (괄호 및 구문을 확인하시기 바랍니다) 및 데이터베이스를 타격하지 않습니다, 당신은 다음과 같은 단지 할 수있는