我正在使用带有XMLListContainer dataProvider的Tree控件....我使用带有以下代码的itemOpen事件在打开树文件夹时更新另一个数据提供程序(使用小三角形) - 数据提供程序包含所有{ {1}}该特定树文件夹中的元素......
<slide />
如果打开第二个文件夹,则thumbDP更新正常,但是当单击第一个文件夹(或另一个关闭的文件夹)时,我希望发生相同的行为(目前您必须关闭并重新打开第一个文件夹)
所以我使用了一个itemClick事件 - 但是这会触发一个ListEvent,我无法弄清楚如何从XMLListContainer中获取子元素就好了......下面的代码抛出一个超出范围的异常
private function itemOpenEvent(event:TreeEvent):void {
slideDP = new XMLListCollection(event.item.elements("slide"));
slideDP.refresh();
}
有人可以帮忙吗?谢谢:))
答案 0 :(得分:2)
我会更改您的事件侦听器以侦听更改事件,并使用树的selectedItem属性:
private function changeHandler(event:ListEvent):void
{
slideDP = new XMLListCollection(tree.selectedItem.elements("slide"));
slideDP.refresh();
}
您可能需要将selectedItem转换为XML或XMLList。