gpt4 book ai didi

c# - DataObject.GetDatapresent 与子类

转载 作者:行者123 更新时间:2023-11-30 14:15:46 24 4
gpt4 key购买 nike

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

最佳答案

DataObject 处理不处理类层次结构 - 它是从给定数据类型的全名派生的纯字符串“类型”,因此它没有上下文来为其提供子类的知识。我刚刚遇到了在 TreeView 中实现拖放的完全相同的问题。

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

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

  2. 同样,在设置数据对象的地方,您自己设置一个 DataObject 实例 - 例如。打电话

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

    然后您可以在另一侧使用 DataObject.GetData(typeof(ItemType))

关于c# - DataObject.GetDatapresent 与子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9380105/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com