2014-01-14 49 views
1

IM使用依賴屬性實現用於拖放操作的非常常見的方法,所述代碼的一部分如下所示如何獲得在拖放操作從內部數據(對象級)(DragEventArgs E)

問題是,我需要從draggedItem(定義爲對象類)中獲取信息,這對於應用程序中的其他計算非常重要。我如何訪問數據?可能嗎 ?或者我應該將draggedItem定義爲另一種類型? thnx提前!

private void DropTarget_PreviewDragOver(object sender, DragEventArgs e) 
     { 
      object draggedItem = e.Data.GetData(this.format.Name); 

      DecideDropTarget(e); 
      if (draggedItem != null) 
      { 
       // Dragged Adorner is only updated here - it has already been created in DragEnter. 
       ShowDraggedAdorner(e.GetPosition(this.topWindow)); 
       UpdateInsertionAdornerPosition(); 
      } 
      e.Handled = true; 
     } 

回答

3

您必須確切知道您的draggedObject是什麼類型,才能使用其任何成員。如果您已經創建了通用的拖放功能,那麼您需要添加一個Type類型的屬性,它將指定,甚至可以驗證正在拖動的數據類型。如果,例如,你知道你的draggedObjectAddress類型,那麼你可以簡單地投它,然後用這樣的性質:

object draggedItem = e.Data.GetData(this.format.Name); 
Address draggedAddress = (Address)draggedItem; 
DoSomethingWith(draggedAddress.PostCode); 
+0

它的作品,謝謝! – user188