如何在拖放操作中从内部(对象类)获取数据(DragEventArgs e)

时间:2014-01-14 13:32:25

标签: c# wpf drag-and-drop attached-properties

我使用依赖属性实现一个非常常见的拖放操作方法,部分代码如下所示

问题是,我需要从draggedItem(定义为对象类)中获取信息,这对于应用程序中的其他计算很重要

如何才能访问数据?可能吗 ?或者我应该将draggedItem定义为另一种类型? thnx提前!

private void DropTarget_PreviewDragOver(object sender, DragEventArgs e)
        {
            object draggedItem = e.Data.GetData(this.format.Name);

            DecideDropTarget(e);
            if (draggedItem != null)
            {
                // Dragged Adorner is only updated here - it has already been created in DragEnter.
                ShowDraggedAdorner(e.GetPosition(this.topWindow));
                UpdateInsertionAdornerPosition();
            }
            e.Handled = true;
        }

1 个答案:

答案 0 :(得分:3)

在使用任何成员之前,您必须确切知道draggedObject的类型。如果您已创建了通用拖放功能,则需要添加将指定的Type类型的属性,甚至可以验证正在拖动的数据类型。例如,如果您知道draggedObject类型为Address,那么您可以简单地投射它,然后使用如下属性:

object draggedItem = e.Data.GetData(this.format.Name);
Address draggedAddress = (Address)draggedItem;
DoSomethingWith(draggedAddress.PostCode);