Utilizando MouseDragElementBehavior con ItemsControl y Canvas

Actualmente tengo un problema al usar MouseDragElementsBehavior del Blend SDK cuando uso un ItemsControl y un Custom Canvas. Mi lienzo personalizado simplemente agrega o elimina MouseDragElement de sus elementos secundarios dependiendo de una DependencyProperty. Esto funcionó bien cuando estaba agregando elementos manualmente a los elementos secundarios del lienzo, pero parece haberse roto al pasar a un control de elementos.

Actualmente estoy usando el siguiente código de ItemsControl:

<ItemsControl ItemsSource="{Binding Path=CanvasItems}">
  <ItemsControl.DataContext>
    <ViewModels:ViewModel/>
  </ItemsControl.DataContext>
  <ItemsControl.ItemsPanel>
    <ItemsPanelTemplate>
      <my:CustomCanvas Background="Black" IsEditable="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}, Path=DataContext.CanEdit}" AllowDrop="{Binding RelativeSource={RelativeSource Self}, Path=IsEditable}"  />
    </ItemsPanelTemplate>
  </ItemsControl.ItemsPanel>
</ItemsControl>

Agregar el comportamiento de arrastre en el método Canvas.VisualChildrenChanged no permite que el objeto recién creado se mueva como antes.

Necesito agregar el comportamiento de Arrastrar a algo diferente al ContentPresenter que se pasa a VisualChildrenChanged o proporcionar un estilo especial?

Respuestas a la pregunta(2)

Su respuesta a la pregunta