2012-02-02 20 views
0

我的問題很簡單。假設我有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

回答

1

是的,我認爲這仍然是可能的。

你的選擇是:

(點擊)選擇的用戶的項,然後單擊(選擇)項目的門票。

無論您開始拖動哪個列表,您仍然可以使用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; 
}