У меня есть следующее дерево:
Animals
|
|___Zebra
| |__Head
| |__Arms
| |__Legs
|
|___Monkey
|__Head
|__Arms
|__Legs
У каждого животного есть идентификационный номер, который хранится в поле «Тег», а его имя - в поле «Имя» узла. Я хочу нажать кнопку с надписью «Сортировать по идентификатору», чтобы приведенная выше «зебра» превратилась в «14» и т. Д. , а затем прибегнуть к численно. Однако я хочу, чтобы дети оставались в порядке головы, рук, ног. Когда я использую следующий код, он работает, но он также перераспределяет ноги головы рук в руки, голову, ноги. Я пробовал NodeSorter, но я не получил никаких других результатов. Я также очень плохо знаком с C #, поэтому мог бы неправильно его реализовать. :) Я также использую пользовательский узел с несколькими дополнительными полями для хранения данных и логических значений. Это то, на что ссылается «JacksNode» ниже.
Вот код:
public static void sortByAnimalID(TreeView tv)
{
tv.BeginUpdate();
foreach (TreeNode treeNode in tv.Nodes[0].Nodes)
{
if (((JacksNode)treeNode).IsAnimal)
{
treeNode.Text = Convert.ToString(treeNode.Tag);
treeNode.Name = Convert.ToString(treeNode.Tag);
}
}
tv.Sort();
tv.EndUpdate();
}
Есть идеи, что я делаю не так? Я искал в Интернете две недели и был завален всеми статьями в виде дерева. Тем не менее, никто не был таким конкретным.
Спасибо, ребята / девочки за любые предложения.