我使用依赖属性实现一个非常常见的拖放操作方法,部分代码如下所示
问题是,我需要从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;
}
答案 0 :(得分:3)
在使用任何成员之前,您必须确切知道draggedObject
的类型。如果您已创建了通用拖放功能,则需要添加将指定的Type
类型的属性,甚至可以验证正在拖动的数据类型。例如,如果您知道draggedObject
类型为Address
,那么您可以简单地投射它,然后使用如下属性:
object draggedItem = e.Data.GetData(this.format.Name);
Address draggedAddress = (Address)draggedItem;
DoSomethingWith(draggedAddress.PostCode);