Приложение My Silverlight 4 позволяет перетаскивать из ListBoxDragDropTarget в PanelDragDropTarget.
В приложении есть Person
объекты, которые представляют собой модели, представляющие людей, и PersonControl
пользовательские элементы управления, имеющие Person
в качестве контекста данных.
Для справки соответствующий код:
<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 в PanelDragDropTarget
но не понимаю, как это решает проблему.