private void DetachDragAdorner()
 {
     if (m_itemAdorner != null)
     {
         m_itemAdorner.Destroy();
         m_itemAdorner = null;
     }
 }
 private void InitializeDragAdorner(ItemsControl itemsControl, object dragData, Point startPosition)
 {
     if (this.DataTemplate != null)
     {
         if (m_itemAdorner == null)
         {
             var adornerLayer = AdornerLayer.GetAdornerLayer(itemsControl);
             UIElement itemContainer = ItemsControlHelper.GetItemContainerFromItemsControl(itemsControl);
             if (itemContainer != null)
             {
                 m_itemAdorner = new DragAdorner(dragData, DataTemplate,
                         itemContainer, adornerLayer);
                 m_itemAdorner.UpdatePosition(startPosition.X, startPosition.Y);
             }
         }
     }
 }