public override DragAndDropVisualMode DoDrag(TreeViewItem parentItem, TreeViewItem targetItem, bool perform, TreeViewDragging.DropPosition dropPosition)
            {
                DragAndDropVisualMode result;

                if (this.m_Owner.m_OverriddenMethods.hasHandleDragAndDrop)
                {
                    TreeView.DragAndDropArgs args = new TreeView.DragAndDropArgs
                    {
                        insertAtIndex = -1,
                        parentItem    = parentItem,
                        performDrop   = perform
                    };
                    if (parentItem != null && targetItem != null)
                    {
                        args.insertAtIndex = TreeViewDragging.GetInsertionIndex(parentItem, targetItem, dropPosition);
                    }
                    result = this.m_Owner.HandleDragAndDrop(args);
                }
                else
                {
                    result = DragAndDropVisualMode.None;
                }
                return(result);
            }
 protected virtual DragAndDropVisualMode HandleDragAndDrop(TreeView.DragAndDropArgs args)
 {
     return(DragAndDropVisualMode.None);
 }