WPF拖放和数据类型

问题描述 投票:3回答:2

如何获得所放置对象的类型?如何将其添加到特定的结构/列表中?

wpf drag-and-drop
2个回答
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);

谢谢,

© www.soinside.com 2019 - 2024. All rights reserved.