2
當我從ItemType
的子類的實例調用此方法DataObject.GetData(typeof(ItemType))
該方法返回null ...我怎樣才能從子類型的數據? 謝謝DataObject.GetDatapresent與子類
當我從ItemType
的子類的實例調用此方法DataObject.GetData(typeof(ItemType))
該方法返回null ...我怎樣才能從子類型的數據? 謝謝DataObject.GetDatapresent與子類
DataObject處理不處理類層次結構 - 它是從給定數據類型的全名派生而來的直串字符串,所以它沒有上下文來提供它的子類知識。我剛剛碰到了在樹視圖中執行拖放的完全相同的問題。
我有兩個選擇(這些可能是拖放特定 - 如果這不是你的問題,它可能不是一個很大的用處) - 都依賴於更改數據對象的來源(再次,如果你沒有訪問權限,可能沒有多大用處)。
創建一個包裝類,它需要一個ItemType
實例,並調用DoDragDrop
時,傳遞的包裝而不是實際的實例。另一方面,測試DataObject.GetData(typeof(WrapperClass))
。
再一次,在設置數據對象的地方,自己設置一個DataObject實例 - 例如。致電
ctl.DoDragDrop(new DataObject(typeof(ItemType).FullName, itemTypeInstance),
DragDropEffects.Move|DragDropEffects.Copy)
那麼你可以在另一邊使用DataObject.GetData(typeof(ItemType))
。
謝謝,如此優雅和簡單:)我遇到了這個問題做拖放操作。很難相信在使用子類:/ – 2012-02-23 09:02:03
+1進行這些操作時存在如此大的缺失。好的解決方案 – SRKX 2012-05-24 14:22:13