2011-04-20 25 views
3

也許我的問題是nooby,但我無法找到答案...WPF拖放和數據類型

我在WPF的拖累&下降應用... 我已經內置接口我想添加功能...

我需要做的是,當我在我的設計器區域中刪除一個項目, 獲取被刪除對象的類型並將其添加到特定的結構/列表或任何其他...

我該怎麼做? 謝謝! g。

回答

7

假設你控制拖(你是不是從另一個應用程序拖動),這取決於你是什麼類型的開始。只需使源代碼和目標代碼匹配即可。在拖動中(通常是MouseMove或MouseDown處理程序):

 var dragData = new DataObject(typeof(JobViewModel), job); 
     DragDrop.DoDragDrop(element, dragData, DragDropEffects.Move); 

開始拖動。然後在下拉菜單中(這聽起來像你已經遠遠得到此):

 var dataObj = e.Data as DataObject; 
     var dragged = dataObj.GetData(typeof(JobViewModel)) as JobViewModel; 

你也可以使用一個字符串,而不是一個類型的。

1

只需將控件的AllowDrop屬性設置爲true即可。並在其上實施Drop事件;您可以訪問事件參數中的放置信息。

對於GetData部分,您可以使用它來獲取特定的數據類型。下面是示例的文件下降:

string[] fileNames = (string[])e.Data.GetData(DataFormats.FileDrop, true); 

感謝,

+0

我已經走遠了! :) 我的問題是如何獲得'OnDrop(DragEventArgs e)'... 使用getData的數據類型?什麼類型? 如果我使用我的對象類型,我得到空... 感謝您的幫助! – geo 2011-04-20 08:30:46

+0

我已經更新了我的答案,希望它有幫助。 – Howard 2011-04-20 08:43:48