Создание дочерних узлов в treeList из Dictionary - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Есть словарь подразделений
Листинг программы
  1. Dictionary<string, RootObject1> array1 = new Dictionary<string, RootObject1>();
, где
Листинг программы
  1. public class RootObject1
  2. {
  3. public int parent { get; set; }
  4. public string name { get; set; }
  5. }
Таким образом, у Dictionary есть Key, Value.name и Value.parent. Если не использовать параметр Value.parent, я строю список подразделений в treeList так на одном уровне:
Листинг программы
  1. treeList1.BeginUnboundLoad(); // начать создание узлов в режиме UnboundLoad
  2. TreeListNode teamNode; // узел номера подразделения
  3. foreach (KeyValuePair<string, RootObject1> kvp in array1)
  4. {
  5. string teamName = Convert.ToString(kvp.Value.name); // название подразделения
  6. string teamKey = Convert.ToString(kvp.Key); // ключ подразделения
  7.  
  8. teamNode = treeList1.AppendNode(new object[] { teamName }, null, null); // добавить узел подразделения
  9. teamNode.ImageIndex = 2; // картинка узла
  10. teamNode.SelectImageIndex = 2; // картинка выбранного узла
  11. }
  12. treeList1.EndUnboundLoad(); // закончить создание узлов в режиме UnboundLoad
А как можно сделать, используя parent, чтобы было примерно так

Решение задачи: «Создание дочерних узлов в treeList из Dictionary»

textual
Листинг программы
  1. foreach (KeyValuePair<string, RootObject1> kvp in array1)
  2.                 {
  3.                     string teamKey = Convert.ToString(kvp.Key);              // ключ подразделения
  4. TreeNode itemNode = null;
  5.             foreach (TreeNode node in treeView1.Nodes)
  6.             {
  7.                 itemNode = FromID(teamKey, node);
  8.                 if (itemNode != null) break;
  9.             }
  10.             if (itemNode == null) // если не нашли ноды с таким тегом добавим на 1 уровень
  11.             {
  12.                 treeView1.Nodes.Add(kvp.Value.name);
  13.                
  14.             }
  15.             else // иначе добавим в дочерние к той ноде
  16.             {
  17.                 itemNode.Nodes.Add(kvp.Value.name);
  18.             }
  19.                 }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.6 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут