2016-10-02 15 views
-1

У меня есть следующий код:Перебор массива для добавления каждого элемента в ParentNode

TreeNode parentNode1 = new TreeNode("CONNECTING RODS"); 
TreeViewNav.Nodes.Add(parentNode1); 

string[] subNodes = 
{ 
    "STOCK", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", 
    "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" 
}; 

foreach (var node in subNodes) 
{ 
    parentNode1.ChildNodes.Add(node); 
} 

так что им в основном пытаются сделать это, но в аккуратным образом:

TreeNode childNodeA = new TreeNode("A"); 
TreeNode childNodeB = new TreeNode("B"); 
TreeNode childNodeC = new TreeNode("C"); 
TreeNode childNodeD = new TreeNode("D"); 
TreeNode childNodeE = new TreeNode("E"); 
TreeNode childNodeF = new TreeNode("F"); 

parentNode1.ChildNodes.Add(childNodeA); 
parentNode1.ChildNodes.Add(childNodeB); 
parentNode1.ChildNodes.Add(childNodeC); 
parentNode1.ChildNodes.Add(childNodeD); 
parentNode1.ChildNodes.Add(childNodeE); 
parentNode1.ChildNodes.Add(childNodeF); 

Im получаю ошибку на линии parentNode1.ChildNodes.Add(node);. Ошибка

«строка» не присваиваемое paramenter типа «System.Web.UI.WebControls.TreeNode»

Я знаю его, потому что я сделал массив строкового массива, но Я не знаю, как это сделать, любая помощь будет действительно оценена :)

+2

'parentNode1.ChildNodes .Add (новый TreeNode (узел)); ' –

ответ

1

ChildNodes.Add ожидает объект TreeNode, но вы передаете его string. Вы должны:

foreach (var node in subNodes) 
{ 
    parentNode1.ChildNodes.Add(new TreeNode(node)); 
} 

Что касается добавления суб-суб узлов:

foreach (var node in subNodes) 
{ 
    var treeNode = new TreeNode(node); 
    //Call function that returns all the sub-sub nodes 
    //Assign those nodes to 'treeNode' using another foreach - or better still have this as a recursive function 
    parentNode1.ChildNodes.Add(treeNode); 
} 
+0

Хм вы были быстры, извините, я не вижу вашего ответа – Sajeetharan

+0

@Sajeetharan - Это нормально :) Я видел, что вы отправили его через мгновение после того, как я предположил, что это так :) –

+0

@LukeRayner - Проверить обновление для под-узлов –

1

Вы Шоуда использовать строку типа TreeNode Попробуйте,

foreach (var node in subNodes) 
{ 
    parentNode1.ChildNodes.Add(new TreeNode(node)); 
} 
+0

Я также хочу добавить ChildNodes для этих дочерних узлов, как бы это сделать? –

+0

Вы можете оценить родительский узел следующим образом: var result = treeView1.Nodes.OfType () .FirstOrDefault (node ​​=> node.Name.Equals ("name")); http://stackoverflow.com/questions/24279097/treenode-index-property-by-name – Sajeetharan

+0

затем выполните то же самое, вызвав add (новый TreeNode (что угодно)); – Sajeetharan