在Flex中将2个源拖放到1个目标,有可能吗?

问题描述:

我的问题很简单。假设我有2 List Controls。 1个用户和1个门票。 (2来源)在Flex中将2个源拖放到1个目标,有可能吗?

而且我有DataGrid(目标)。可以在前面提到的2列表中选择1个用户和1张票,并将&拖放到DataGrid

我知道这不是那么简单,因为他们会得到自动混合。如果它是可能的...我将不得不使用DragEnter事件Datagrid之类的东西将它们混合,创造我的数据提供程序。但我不知道如何从不同的来源同时拖放两个项目。这是可能的一个来源..但不知道如何与2来源做到这一点。

任何帮助将非常感激。

在此先感谢

+0

1鼠标2项。我甚至不能想象它。我认为你需要重新思考你在做什么。去外面找到彼此相邻的两棵树。现在推他们。好。现在用一只手。你的手怎么能同时在两棵树上? – 2012-02-02 23:53:16

+0

是的,我不认为这将是一个非常明确的互动,但我可以看到你在说什么。我认为从两个列表中选择项目后按下按钮会更清楚,然后在datagrids数据提供者中创建一个条目。 – shaunhusain 2012-02-03 01:46:55

+0

我有这样的,有一个按钮,但我正在寻找是否有可能做到这一点......事实上,我有2个选择的项目在2列表中......我想有些方法是可能的,与DragManager的东西。 – 2012-02-03 15:47:19

是的,我认为这仍然是可能的。

你的选择是:

(点击)选择的用户的项,然后单击(选择)项目的门票。

无论您开始拖动哪个列表,您仍然可以使用dragEvent中的项目和列表中的选定项目填充数据网格。

// 
boolUsers:Boolean; 

On your datagrid: 
private function dataGrid_dragDrop(evt:DragEvent) :void 
{ 
    // This will get the items from the list where you initiated the drag. 
    var objDrag:Object; 
    objDrag = evt.dragSource.dataForFormat("items"); 


    // Depending on where the drag was initiated, get the items from the list. 
    var objList:Object; 
    if(boolUsers) 
    { 
    objList = listTickets.selectedItem; 
    } 
    else 
    { 
    objList = listUsers.selectedItem; 
    } 

    boolUsers = false; 
} 

而且你需要定义dragStart事件为您的列表

private function listUsers_dragStart(evt:DragEvent) :void 
{ 
    boolUsers = true; 
}