我有一个AdvancedDataGrid的子类,显示了一个树状的数据结构。考虑到calculateDropIndex
返回的索引,如何获取该索引处的项目?
阅读完大量代码后,似乎最不可靠的方式是:
var oldSelectedIndex:int = this.selectedIndex;
var mouseOverIndex:int = this.calculateDropIndex(event);
this.selectedItem = mouseOverIndex;
var item:* = this.selectedItem;
this.selectedIndex = oldSelectedIndex;
另一种选择似乎是在修补iterator
属性...但是,根据我看到它使用的方式来判断,这也会很快变得非常困难。
那么,如何才能在高级数据网格中的特定索引处获取该项而不会疯狂?
答案 0 :(得分:4)
你可以尝试:
// Get the dropIndex from the dragEvent
var index:int = this.calculateDropIndex(event);
// Get the itemRenderer from the index
var renderer:IListItemRenderer = this.indexToItemRenderer(index);
// Get your item from the data property of the itemRenderer
var item:Object = renderer.data;
答案 1 :(得分:0)
this.dataProvider.getItemAt(calculateDropIndex(event));
通过文档查看,您似乎可以使用openNodes,它返回一个所有开放节点的数组,它应该与您的索引相对应?
this.dataProvider.openNodes[calculateDropIndex(event)];