Приложение My Silverlight 4 позволяет перетаскивать из ListBoxDragDropTarget в PanelDragDropTarget.
Приложение имеет Person
объекты, которые представляют собой модели, представляющие людей, и PersonControl
пользовательские элементы управления, имеющие Person
в качестве DataContext.
Для справки соответствующий код:
<toolkit:ListBoxDragDropTarget x:Name="dtListBox" Grid.Row="2" AllowedSourceEffects="Copy" AllowDrop="True"
HorizontalContentAlignment="Stretch"
VerticalAlignment="Top" VerticalContentAlignment="Stretch">
<!-- FilteredMembers is of type ObservableCollection<Person> -->
<ListBox ItemsSource="{Binding FilteredMembers}"
MinWidth="42"
MinHeight="42">
<ListBox.ItemTemplate>
<DataTemplate>
<my:PersonControl />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</toolkit:ListBoxDragDropTarget>
и
<toolkit:PanelDragDropTarget AllowDrop="True" AllowedSourceEffects="Copy,Move"
Drop="PanelDragDropTarget_Current_Drop">
<StackPanel>
<ctl:PersonControl Margin="3,3,3,3" x:Name="pcCurrent"></ctl:PersonControl>
</StackPanel>
</toolkit:PanelDragDropTarget>
Пока все хорошо.Когда я перетаскиваю на PanelDragDropTarget
, я получаю Person
.
Однако я также разрешаю перетаскивать с PanelDragDropTarget
на другой PanelDragDropTarget
.В этом случае, вместо Person
, отброшенный объект является PersonControl
.
Таким образом, отброшенный объект может быть либо Person
, либо PersonControl
в зависимости от того, откуда он взялся.
Я действительно хочу перетаскивать Person
объекты во всех случаях, а не перемещаться вокруг PersonControl
.Как я могу изменить свой PanelDragDropTarget
так, чтобы перетаскивание тянуло Person
, а не PersonControl
?
Я рассмотрел этот очень похожий вопрос:
Перетаскивание изListBoxDragDropTarget to PanelDragDropTarget
, но не понимаю, как это решает проблему.