2009-02-18 5 views
1

J'utilise un contrôle Tree avec un fournisseur de données XMLListContainer .... J'utilise un événement itemOpen avec le code suivant pour mettre à jour un autre fournisseur de données lorsqu'un dossier d'arbre est ouvert (petit triangle) - le fournisseur de données contient tous les éléments <slide /> dans ce dossier particulier d'arbre ...Flex - Comment faire pour que l'événement Tree itemClick mime l'événement itemOpen?

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

Si un deuxième dossier est ouvert thumbDP met à jour très bien mais quand le premier dossier (ou un autre dossier fermé) est cliqué, je veux le même comportement se produise (actuellement, vous devez fermer et rouvrir le premier dossier)

Donc j'utilise un événement itemClick - mais cela déclenche un ListEvent et je ne peux pas calculer comment pour obtenir les éléments enfants du XMLListContainer aussi facile ... Le code ci-dessous renvoie une exception en dehors des limites

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

Quelqu'un peut-il aider? Merci :)

Répondre

2

je changerais votre écouteur d'événement pour écouter un événement de changement, et utiliser la propriété selectedItem de l'arbre:

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

    slideDP.refresh();       
} 

Vous devrez peut-être jeter selectedItem comme XML ou XMLList.

Questions connexes