2014-01-14 10 views
1

메신저, 코드의 일부의존 특성을 이용하여 끌어 놓기 조작을위한 매우 일반적인 방법을 구현

아래에 표시되는 드래그 & 드롭 조작의 내부 데이터 (객체 클래스) (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 유형의 속성을 추가해야합니다.이 속성은 드래그되는 데이터 유형을 확인할 수도 있습니다. 작동

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

, 감사 : 예를 들어, 당신은 당신이 단순히 캐스트 다음과 같은 속성을 사용할 수 있습니다, 당신의 draggedObject 유형 Address의 것을 알고 있었다! – user188