2009-02-18 66 views
1

我正在使用TreeList控件和XMLListContainer dataProvider ....我用下面的代碼更新另一個數據提供者時使用itemOpen事件打開樹文件夾時(使用小三角形) - 數據提供者包含所有<slide />元素在特定的樹文件夾...Flex - 如何讓Tree itemClick事件模仿itemOpen事件?

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);       
} 

誰能幫助?謝謝:)

回答

2

我會改變你的事件監聽器監聽變化事件,並用樹的selectedItem屬性:

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

    slideDP.refresh();       
} 

您可能需要轉換將selectedItem爲XML或XMLList。