Flex:拖放到List项目上

时间:2010-10-21 18:09:09

标签: flex

我有一个带有项目渲染器的List,并且想要拖放到列表中的项目上,而不是将数据添加到列表中。拖动时是否可以找到悬停的项目?

1 个答案:

答案 0 :(得分:1)

当拖动操作开始时,您可以使用“dragHandler”保存从其他元素拖动的数据:

dragStart="dragHandler(event)"

“dragHandler”应如下所示:

protected function dragHandler(event:DragEvent):void{
     yourSourceList.selectedItems;
}

您可以将selectedItems保存在矢量中,因为这是被拖动元素的性质。

然后在要放弃元素的列表的itemRenderer中,您必须在itemRenderer的元素中设置属性“dragEnter”,如Group或SkinnableContainer:

dragEnter="dragEnterHandler(event)"

您的“dragEnterHandler”应如下所示:

private function dragEnterHandler(e:DragEvent):void {
      DragManager.acceptDragDrop(e.currentTarget as IUIComponent);
}

这样做会阻止元素添加到列表中。

仍然在itemRenderer的Group或Skinnablecontainer中,你应该设置一个“dragDrop”属性:

dragDrop="dragDropHandler(event)"

然后你的“dragDropHandler”应该是这样的:

private function dragDropHandler(e:DragEvent):void {
     //Do something when the elements are dropped
}

这样您就不需要浏览被删除元素的事件变量,因为您已经保存了在“dragHandler”方法中拖动的项目