私は ObsarvableCollection にバインドされた Canvas を持っています:
<ItemsControl ItemsSource="{Binding Path=MapElements}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas Width="{Binding ElementName=mapWidth, Path=Text}"
Height="{Binding ElementName=mapHeight, Path=Text}"
Background="WhiteSmoke"
AllowDrop="True"
Margin="10,10,10,10"
ClipToBounds="True"
Drop="Mapa_Drop_1"
DragOver="Mapa_DragOver_1"
DragEnter="Mapa_DragEnter_1"
Name="Mapa">
</Canvas>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Image Source="{Binding Image}"
Margin="0,0,5,0" />
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemContainerStyle>
<Style>
<Setter Property="Canvas.Top"
Value="{Binding Y}" />
<Setter Property="Canvas.Left"
Value="{Binding X}" />
</Style>
</ItemsControl.ItemContainerStyle>
</ItemsControl>
ドラッグアンドドロップ画像を実装しました。すべてうまくいきますが、キャンバス上でオブジェクトをドラッグしながらプレビューを追加したいと考えています。ドラッグ中にオブザーバブルコレクションにオブジェクトを追加することもできますが、誰かがオブジェクトをキャンバスにドロップしない場合はどうなりますか (オブザーバブルコレクションから削除する必要があります)。どうすればこれを実装できますか?