2009-08-25 55 views
0

我有一個flex項目,由幾個自定義組件組成,這些組件主要基於VBox ,其中某些形式或時尚的列表範圍從TreeAdvancedDataGrid。我的主要觀點 由兩個自定義組件組成,其中一個包含Tree和其他AdvancedDataGrid在組件之間拖拽n掉落

在這些組件中使用標準的內置d-n-d,我無法執行d-n-d。所以我實現了 d-n-d使用DragManager和必要的事件(mouseDown,dragEnterdragDrop)在那些 組件和那些工作。但是,這種方法似乎會使其他事件複雜化,例如 雙擊和右鍵單擊操作。

有沒有解決方案,有這種類型的方法本機d-n-d?

LeftSide.mxml:

<VBOX> 
<Tree/> 
</VBOX> 

RightSide.mxml:

<VBOX> 
<AdvancedDataGrid/> 
</VBOX> 

main.mxml:

<Application> 
<HBOX> 
<LeftSide/> 
<RightSide/> 
</HBOX> 
</Application> 

回答

0

我不這麼認爲.... 但什麼我很久以前纔開始拖動,如果用戶按住鼠標並持續一段時間或一段時間已經證明了它的距離。我不記得具體細節,但我會盡力挖掘我很快就做到了。

+0

對不起,我一直用自定義列表控件替換舊的拖動方法。創建一個DraggableTreeControl來實現拖動是一個可行的解決方案嗎? – Aethex 2009-08-25 17:56:59

+0

它可能......我還必須爲其他端創建一個DraggableAdvancedDataGrid(或其他)或只是拖動啓動器?另外,是否還有什麼特別的事情需要進入dragDrop事件來糾正查看下拉列表中該項目已被刪除的位置? – Los 2009-08-25 21:00:19

+0

看到這個網站: http://www.adobe.com/devnet/flex/quickstart/adding_drag_and_drop/ 你可能知道它的大部分,但它可能是有用的。還可以嘗試查看List控件的源代碼 - 它具有內置的拖放支持。 至於DraggableAdvancedDataGrid,可能,但它取決於AdvancedDataGrid已有的各種設施。 – Aethex 2009-08-26 01:22:00