我有兩個ListBox(在Silverlight 3應用程序中),每個ListBox都包含一個ListBoxDragDropTarget。 現在我用一些自定義對象(Person)填充SourceBox。 然後,我連接目標DragDtopTarget的DragOver事件。 這一切工作正常,我可以拖動&從第一個列表中刪除元素到第二個。如何獲取Silverlight應用程序中的拖動元素
現在我的問題:我怎樣才能得到的元素,這是被拖動,以允許/不讚拖動? (我無法從FragEventArgs中獲取Person)。
這是我的XAML:
<Grid x:Name="LayoutRoot" Background="White">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<controlsToolkit:ListBoxDragDropTarget
HorizontalContentAlignment="Stretch"
VerticalContentAlignment="Stretch"
x:Name="DragSource">
<ListBox x:Name="lbSource" DisplayMemberPath="Name" />
</controlsToolkit:ListBoxDragDropTarget>
<controlsToolkit:ListBoxDragDropTarget
Grid.Column="1"
HorizontalContentAlignment="Stretch"
VerticalContentAlignment="Stretch"
x:Name="DragDest"
msWindows:DragDrop.AllowDrop="true">
<ListBox x:Name="lbDest" DisplayMemberPath="Name" />
</controlsToolkit:ListBoxDragDropTarget>
,這是我的dragover處理程序的代碼:
Private Sub DragDest_DragOver(ByVal sender As Object, _
ByVal e As Microsoft.Windows.DragEventArgs) _
Handles DragDest.DragOver
Dim Pers = e.Data.GetData(GetType(Person))
End Sub
感謝您的任何提示如何解決這個問題。
克里斯托夫
編輯:
這是我的應答:-)的短版:
Private Sub DragDest_DragOver(ByVal sender As Object, _
ByVal e As Microsoft.Windows.DragEventArgs) _
Handles DragDest.DragOver
Dim Args As ItemDragEventArgs = e.Data.GetData(e.Data.GetFormats()(0))
Dim Sel As SelectionCollection = Args.Data
Dim Persons = (From Pe In Sel Select DirectCast(Pe.Item, Person)).ToList
End Sub