Flex - Как получить событие Tree itemClick для имитации события itemOpen? - PullRequest
1 голос
/ 18 февраля 2009

Я использую элемент управления Tree с XMLListContainer dataProvider .... Я использую событие itemOpen со следующим кодом для обновления другого поставщика данных при открытии папки дерева (с использованием небольшого треугольника) - поставщик данных содержит все <slide /> элементов в этой конкретной папке дерева ...

private function itemOpenEvent(event:TreeEvent):void {          
 slideDP = new XMLListCollection(event.item.elements("slide"));  
 slideDP.refresh();                     
}

Если вторая папка открыта, thumbDP обновляется нормально, но когда щелкается первая папка (или другая закрытая папка), я хочу, чтобы происходило то же самое (в настоящее время необходимо закрыть и снова открыть первую папку)

Поэтому я использую событие itemClick - но при этом запускается ListEvent, и я не могу понять, как легко получить дочерние элементы из XMLListContainer ... Приведенный ниже код вызывает исключение вне границ

private function itemClickEvent(event:ListEvent):void {         
 treeFeed.getItemAt(event.rowIndex);                        
}

Кто-нибудь может помочь? Спасибо:)

1 Ответ

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

Я бы изменил ваш прослушиватель событий, чтобы прослушать событие Event, и использовал бы свойство selectedItem в дереве:

private function changeHandler(event:ListEvent):void
{                  
    slideDP = new XMLListCollection(tree.selectedItem.elements("slide"));

    slideDP.refresh();                           
}

Возможно, вам придется преобразовать selectedItem в XML или XMLList.

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