Программный запуск события изменения в дереве управления Flex - PullRequest
1 голос
/ 18 февраля 2009

У меня есть способ добавить структуру узла XML в текущий выбранный узел дерева.

Это добавляет xml и открывает родительский узел для отображения вновь добавленного узла.

Затем я выбираю узел, устанавливая selectedItem дерева.

У меня есть форма редактирования, которая обновляет свои значения в событии изменения дерева. Когда я устанавливаю selectedItem в этом методе, узел выбран правильно, но событие изменения никогда не запускается (таким образом, редактор не обновляется). Я пытался вызвать его в блоке «Позвонить позже», но безрезультатно.

Есть ли способ заставить дерево отправлять событие изменения в этот момент?

public function addSelected(node:XML):void{

            tree_expandItem(false);             

            var selectedItem:XML = tree.selectedItem as XML;

            selectedItem.appendChild(node);

            tree_expandItem(true);

            callLater(function():void { tree.selectedItem = node; } );  

        }

Чтобы расширить этот вопрос в общем виде - я бы подумал, что изменение выбранного элемента дерева в любом случае приведет к событию изменения? Или изменение считается только изменением, если его вносит пользователь?

Ответы [ 2 ]

3 голосов
/ 18 февраля 2009

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

private function changeHandler(event:ListEvent):void
{
    doChangeLogic();
}

private function doChangeLogic():void
{
    //statements
}

public function addSelected(node:XML):void
{
    tree_expandItem(false);                         

    var selectedItem:XML = tree.selectedItem as XML;

    selectedItem.appendChild(node);

    tree_expandItem(true);

    callLater(function():void { tree.selectedItem = node; } );

    doChangeLogic();
}
2 голосов
/ 18 февраля 2009

Есть ли способ заставить дерево отправлять событие изменения в этот момент?

Используйте метод dispatchEvent (). Спасибо Джеймс!

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