我通过 Jörg Reichardt找到了使用带有 ItemsControl 和 Canvas 的 MouseDragElementBehavior 的解决方案。但这对我不起作用。
这是我的代码:
<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>
这些项目显示在画布上,但不能拖放。我在视图模型中为 cardCollection 创建新项目,并且 cardCollection 通过 mvvm propertynotifychanged 更新到模型。