涉及使用 Gong DragDrop WPF NuGet(但即使沒有,也可能不會影響拖放操作的典型功能)。
設定:
- 處理 ListBox 的 PreviewDrop 事件。
- 一個資料物件變數。
- 將 e.Data 分配給 DataObject 變數
- 將物件從任何地方拖放到此 ListBox 以觸發。
- 除錯斷點以在 Locals 中查看 DataObject。
我需要得到什么:
ListBoxItem 的內容或拖入其中的 TreeViewItem 的標題(Gong 允許您這樣做)或放入我的 ListBox 中的整個物件。
我可以從物理上看到這個 DataObject 在其 Non-Public Members -> InnerData -> Non-Public Members -> Data -> Raw View -> Values -> Results View -> (0) -> (0) 中包含放置的物件-> 資料,但我不知道如何訪問它。
我試過的:
谷歌搜索溢位和代碼專案,VB.Net 檔案,沒有發現任何具體的問題(或者它可能太模糊了)。
我嘗試使用反射來獲取 InnerData 欄位,如下所示:
Dim myElement = GetType(DataObject).GetField("innerData", System.Reflection.BindingFlags.NonPublic).GetValue(e.Data),
但是我得到 System.NullReferenceException:'物件參考未設定為物件的實體。'。
Dim myInnerData = myData.GetType().GetField("_innerData", Reflection.BindingFlags.NonPublic Or Reflection.BindingFlags.Instance)
將獲得我的 innerData,但是我丟失了“innerData”的“Data”,讓我仍然無法獲取附加到 DataObject 的物件。
uj5u.com熱心網友回復:
解決方案比我想象的要簡單得多。喬讓我以正確的方式開始,解釋:
您需要DataObject.GetFormats知道您正在使用什么,復制GetFormats回傳的字串,如下所示:
Dim myElement = myData.GetFormats
對我來說回傳:

將該字串傳遞給GetData這樣的:
Dim myInnerData = myData.GetData("GongSolutions.Wpf.DragDrop")
瞧,你剛剛得到了DragEventArgs.
據我所知,這是對這個特定問題有答案的唯一主題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/405797.html
標籤:
上一篇:vb.net上傳帶有標題和描述的影像從jQuery(blueimp/jQuery-File-Upload)獲取值
