Создание дочерних узлов в treeList из Dictionary - C#
Формулировка задачи:
Здравствуйте. Есть словарь подразделений
, где
Таким образом, у Dictionary есть Key, Value.name и Value.parent. Если не использовать параметр Value.parent, я строю список подразделений в treeList так на одном уровне:
А как можно сделать, используя parent, чтобы было примерно так
Dictionary<string, RootObject1> array1 = new Dictionary<string, RootObject1>();
public class RootObject1
{
public int parent { get; set; }
public string name { get; set; }
} 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Решение задачи: «Создание дочерних узлов в 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);
}
}