Как поменять элементы в древовидной структуре? - PullRequest
0 голосов
/ 23 сентября 2011

У меня есть элемент управления в виде дерева:

  • Родительский элемент 1
    • Детский предмет 1
    • Детский предмет 2
    • Детский предмет 3
  • Родительский элемент 2
    • Детский предмет 1
    • Детский предмет 2
    • Детский предмет 3
  • Родительский элемент 3
    • Детский предмет 1
    • Детский предмет 2
    • Детский предмет 3

Я хочу переместить, например, Родительский элемент 2 , вверх или вниз со своими дочерними элементами, а также я хочу переместить дочерние элементы вверх / вниз для его родительского уровня.

p.s. Я сделал это с базой данных, но проблема в производительности - перепривязывать древовидную структуру при каждой операции перемещения.

Ответы [ 3 ]

1 голос
/ 23 сентября 2011

Я использовал модифицированную версию найденного кода здесь здесь в прошлом для перетаскивания элементов пользовательского интерфейса в TreeView

В основном он находит родительский элемент управления, содержащий коллекцию, использует ItemContainerGenerator, чтобы найти контейнер, содержащий перетаскиваемый элемент, а затем перемещает контейнер в новое место в родительском элементе управления

0 голосов
/ 23 сентября 2011

Может ли это сработать?

TreeNode node1 = treeView.Nodes[1];
TreeNode node2 = treeView.Nodes[2];
treeView.Nodes[1] = node2;
treeView.Nodes[2] = node1;
0 голосов
/ 23 сентября 2011

Возможно двухстороннее связывание с вашим пользовательским объектом?Вы можете добавить пользовательский сортировщик для модели View в виде дерева по свойству заказа, например ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...