用e.Data.GetData(typeof(XXX)),如果XXX是指定类型的话就可以得到,而如果是接口的话就得不到。

解决方案 »

  1.   

    你可以这这段代码前判断if(xxx is 某类型)
    {
    ...
    }
    else{
    ...
    }接口的数据只能通过属性或者方法的形式传递
    至于能不能接收,要看e.Data.GetData的文档了
      

  2.   


    整个对象是传过来了。比如,
    interface I
    class A : I
    class B : I
    拖拽源在Data中传入一个A的实例,用e.Data.GetData(typeof(A))可以得到这个实例,而用e.Data.GetData(typeof(I))就得不到。
    现在我不知道拖拽源传过来的是A还是B,还有可能是C、D等等,只知道他们实现了I接口。在这种情况下怎么得到这个对象?