我在JörgReichardt找到了这个解决方案Using MouseDragElementBehavior with an ItemsControl and Canvas。但它对我不起作用。
这是我的代码:
<ItemsControl ItemsSource="{Binding CardCollection}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas Background="White" AllowDrop="True" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<ContentControl Content="{Binding}">
<i:Interaction.Behaviors>
<is:MouseDragElementBehavior ConstrainToParentBounds="True" />
</i:Interaction.Behaviors>
</ContentControl>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
项目显示在画布上,但不能拖放。我在viewmodel中为cardCollection创建新项目,并通过mvvm propertynotifychanged将cardCollection更新为模型。