具有子类的DataObject.GetDatapresent



当我从ItemType的子类的实例调用此方法DataObject.GetData(typeof(ItemType))时,该方法返回null。。。如何从子类型获取数据?感谢

DataObject处理不处理类层次结构-它是一个从给定数据类型的全名派生的直接字符串"type",因此它没有上下文来提供子类的知识。我刚刚遇到了在树视图中实现拖放的完全相同的问题。

我有两个选项(这些选项可能是特定于拖放的-如果这不是你的问题,它可能不会有太多用处)-都依赖于更改数据对象的源(同样,如果你没有访问权限,它可能没有太大用处)。

  1. 创建一个接受ItemType实例的包装器类,在调用DoDragDrop时,传递该包装器而不是实际实例。另一方面,测试DataObject.GetData(typeof(WrapperClass))

  2. 同样,在设置数据对象的地方,自己设置一个DataObject实例,例如调用

    ctl.DoDragDrop(new DataObject(typeof(ItemType).FullName, itemTypeInstance),
        DragDropEffects.Move|DragDropEffects.Copy)
    

    那么您可以在另一侧使用CCD_ 6。

相关内容

  • 没有找到相关文章

最新更新