Создайте TreeNodes с ключом в выражении Linq - PullRequest
2 голосов
/ 21 октября 2011

Я пытаюсь создать TreeNode с ключом, но нет конструктора для 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 ?

Ответы [ 2 ]

9 голосов
/ 21 октября 2011

То, что новый синтаксис инициализации для

TreeNode tn = new TreeNode("text node") {Name = "keynode"} ;
1 голос
/ 21 октября 2011
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"}}}
               );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...