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

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

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

Здравствуйте. Есть словарь подразделений
Dictionary<string, RootObject1> array1 = new Dictionary<string, RootObject1>();
, где
        public class RootObject1
        {
            public int parent { get; set; }
            public string name { get; set; }
        }
Таким образом, у Dictionary есть Key, Value.name и Value.parent. Если не использовать параметр Value.parent, я строю список подразделений в treeList так на одном уровне:
                treeList1.BeginUnboundLoad();  // начать создание узлов в режиме UnboundLoad
 
                TreeListNode teamNode;         // узел номера подразделения    
 
                foreach (KeyValuePair<string, RootObject1> kvp in array1)
                {
                    string teamName = Convert.ToString(kvp.Value.name);      // название подразделения
                    string teamKey = Convert.ToString(kvp.Key);              // ключ подразделения

                    teamNode = treeList1.AppendNode(new object[] { teamName }, null, null);  // добавить узел подразделения
                    teamNode.ImageIndex = 2;                // картинка узла
                    teamNode.SelectImageIndex = 2;          // картинка выбранного узла
                }
 
                treeList1.EndUnboundLoad();    // закончить создание узлов в режиме UnboundLoad
А как можно сделать, используя parent, чтобы было примерно так

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

textual
Листинг программы
foreach (KeyValuePair<string, RootObject1> kvp in array1)
                {
                    string teamKey = Convert.ToString(kvp.Key);              // ключ подразделения
TreeNode itemNode = null;
            foreach (TreeNode node in treeView1.Nodes)
            {
                itemNode = FromID(teamKey, node);
                if (itemNode != null) break;
            }
            if (itemNode == null) // если не нашли ноды с таким тегом добавим на 1 уровень
            {
                treeView1.Nodes.Add(kvp.Value.name);
                
            }
            else // иначе добавим в дочерние к той ноде
            {
                itemNode.Nodes.Add(kvp.Value.name);
            }
                }

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


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

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

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