flex: перемещать элемент в древовидном элементе управления

У меня есть элемент управления в виде дерева, и я хочу дать пользователю возможность перемещаться вверх и вниз по элементу, который он только что выделил, с помощью кнопок вверх и вниз. Дерево создается из XML.

Мне удалось вставить выбранный элемент во второй раз в другое место со следующим кодом:

var parentXML:XML = XML(containerTree.selectedItem).parent();

var upperItem:XML = topContainer.source[containerTree.selectedIndex-1]; 

parentXML.insertChildBefore(upperItem,XML(containerTree.selectedItem));

но тогда у меня есть элемент дважды в списке. Как я могу удалить, чтобы снова вставить?

Спасибо за подсказки! Маркус


person Markus    schedule 09.03.2010    source источник


Ответы (1)


Используйте оператор delete (XML), чтобы удалить узлы XML.

var parentXML:XML = XML(containerTree.selectedItem).parent();

var upperItem:XML = topContainer.source[containerTree.selectedIndex-1]; 

delete containerTree.selectedItem;

parentXML.insertChildBefore(upperItem,XML(containerTree.selectedItem));
person Amarghosh    schedule 09.03.2010
comment
Это не сработает, если предположить, что containerTree является компонентом дерева: 1189: Попытка удалить фиксированное свойство selectedItem. Можно удалить только динамически определенные свойства. - person Hamid; 17.03.2011