当我从该方法DataObject.GetData(typeof(ItemType))
的子类的实例调用此方法时,ItemType
返回 null...如何从子类型中获取数据?谢谢
问问题
877 次
1 回答
7
DataObject 处理不处理类层次结构——它是从给定数据类型的全名派生的直接字符串“类型”,因此它没有上下文来为其提供子类的知识。我刚刚遇到了在树视图中实现拖放的完全相同的问题。
我有两个选项(这些可能是特定于拖放的 - 如果这不是你的问题,它可能没有很多用处) - 都依赖于更改数据对象的来源(同样,如果你没有访问它,它可能没有多大用处)。
创建一个接受
ItemType
实例的包装器类,并在调用DoDragDrop
时传递该包装器而不是实际实例。另一方面,DataObject.GetData(typeof(WrapperClass))
改为测试。同样,在设置数据对象的地方,自己设置一个 DataObject 实例 - 例如。称呼
ctl.DoDragDrop(new DataObject(typeof(ItemType).FullName, itemTypeInstance), DragDropEffects.Move|DragDropEffects.Copy)
然后你可以
DataObject.GetData(typeof(ItemType))
在另一边使用。
于 2012-02-21T20:14:47.830 回答