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



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

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

怎样才能访问数据?可能吗?或者我应该draggedItem定义为另一种类型?提前感谢!

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;
        }

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

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

最新更新