私は、このソリューションUsing MouseDragElementBehavior with an ItemsControl and Canvas by Jörg Reichardt を見つけました。しかし、それは私にはうまくいきません。
これは私のコードです:
<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 がモデルに更新されます。