У меня есть два ListBox (в приложении Silverlight 3), каждый из которых связан с ListBoxDragDropTarget. Теперь я заполняю SourceBox некоторыми пользовательскими объектами (Person). Затем я подключаю событие DragOver назначения DragDtopTarget. Это все работает нормально, и я могу перетащить &. Отбросьте элементы из первого списка во второй.Как я могу получить перетаскиваемый элемент в приложении Silverlight
Теперь моя проблема: как я могу получить элемент, который перетаскивается, чтобы разрешить/отключить перетаскивание? (Я не могу получить Личность из FragEventArgs).
Это мой 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-Handler:
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
Спасибо за любые подсказки, как решить эту проблему.
Christoph
EDIT:
Это моя короткая версия ответа :-):
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