当我从ItemType
的子类的实例调用此方法DataObject.GetData(typeof(ItemType))
时,该方法返回null。。。如何从子类型获取数据?感谢
DataObject处理不处理类层次结构-它是一个从给定数据类型的全名派生的直接字符串"type",因此它没有上下文来提供子类的知识。我刚刚遇到了在树视图中实现拖放的完全相同的问题。
我有两个选项(这些选项可能是特定于拖放的-如果这不是你的问题,它可能不会有太多用处)-都依赖于更改数据对象的源(同样,如果你没有访问权限,它可能没有太大用处)。
-
创建一个接受
ItemType
实例的包装器类,在调用DoDragDrop
时,传递该包装器而不是实际实例。另一方面,测试DataObject.GetData(typeof(WrapperClass))
。 -
同样,在设置数据对象的地方,自己设置一个DataObject实例,例如调用
ctl.DoDragDrop(new DataObject(typeof(ItemType).FullName, itemTypeInstance), DragDropEffects.Move|DragDropEffects.Copy)
那么您可以在另一侧使用CCD_ 6。