2011-10-21 25 views
1

我想用鍵創建一個TreeNode,但TreeNode沒有帶鍵和文本的構造函數。我只發現了以下解決方案:在Linq表達式中用鍵創建TreeNode

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

 

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

但這些方式不適合我,因爲我想新TreeNodes添加到我的treeView與LINQ查詢。


這裏是我想什麼,做理想:

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

上午我堅持使用foreach循環創建TreeNodes或者你看到一個辦法做到這一點一個設備 - ish

回答

7

那是新的初始化語法是什麼

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

+1。它實際上稱爲[對象初始化程序](http://msdn.microsoft.com/en-us/library/bb384062.aspx)。 – Ani

+0

我不知道那件事。完善! – Otiel

+0

我希望看到這樣的結果,你似乎首先分配錯誤的名稱「樹節點」,然後只是將名稱覆蓋到「keynode」,而根本不添加任何子節點。 –

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

應該是類似的東西。 (請在括號和語法)

您想使用此構造TreeNode(String, TreeNode[])

順便說一句,如果不工作,你是不是打一個數據庫,你可以做以下幾點:

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