private void OnPreviewDragOver(object sender, DragEventArgs dragEventArgs)
        {
            if (!dragEventArgs.Data.GetDataPresent(typeof(TDataItem)))
            {
                return;
            }

            _dragAdorner?.Update(dragEventArgs.GetPosition(AssociatedObject));
        }
        private void InitializeAdornerTemplate(DragEventArgs dragEventArgs, TDataItem data)
        {
            if (data == null)
            {
                return;
            }
            if (DragDataTemplate == null)
            {
                return;
            }
            if (_dragAdorner != null)
            {
                return;
            }

            var adornerLayer = AdornerLayer.GetAdornerLayer(AssociatedObject);

            _dragAdorner = new DragAdorner(data, DragDataTemplate, AssociatedObject, adornerLayer);
            _dragAdorner?.Update(dragEventArgs.GetPosition(AssociatedObject));
        }