拖放-GetData()返回null

时间:2019-09-09 10:41:35

标签: c# drag-and-drop

我正在尝试将树视图(WPF)的某些项目拖放到DataGrid(WinForms)中。

不幸的是,我在drop事件中无法接收数据:

System.Windows.Forms.DragEventArgs e;

foreach (string format in e.Data.GetFormats(true))
{
    object data = e.Data.GetData(format); //Returns null
}

我的data始终为空。

我正在尝试获取“ ADClientAble”格式的数据:

enter image description here

如何访问属性innerData

我已经通过反射进行了尝试,但是没有用:

var oleConverterType = Type.GetType("System.Windows.DataObject+OleConverter, PresentationCore, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35");
var oleConverter = typeof(System.Windows.Forms.DataObject).GetField("innerData", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).GetValue(e.Data);

var dataObject = (System.Windows.Forms.DataObject)oleConverterType.GetProperty("OleDataObject").GetValue(oleConverter, null); //Throws an error: 


var item = dataObject.GetData(this.Format);
  

mscorlib.dll中发生了'System.Reflection.TargetException'类型的未处理异常

     

其他信息:对象与目标类型不匹配。

0 个答案:

没有答案