WPF拖放和数据类型

时间:2011-04-20 08:14:57

标签: wpf drag-and-drop

也许我的问题很吵,但我找不到答案......

我在wpf中有一个拖放应用程序... 我有内置的界面,我想添加功能......

我需要做的是,当我在设计师区域放置一件物品时, 获取被删除对象的类型并将其添加到特定的结构/列表或其他...

我该怎么做?  谢谢! 克。

2 个答案:

答案 0 :(得分: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;

您也可以使用String而不是Type。

答案 1 :(得分:1)

只需将控件的AllowDrop属性设置为true即可。并在其上实现Drop事件;您可以在事件参数中访问删除信息。

对于GetData部分,您可以使用它来获取特定的数据类型。这是文件删除,例如:

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

谢谢,