Drag-and-Drop Manager for WPF

Now comes with EditableTreeNode! (see it in action in the demo)

With the Qnomad Drag-and-Drop Manager for WPF, you can add animated drag-and-drop to your WPF applications in three easy steps.

  1. Create the DragDropManager then add the TreeViews/ListViews along with drop handlers for each operation you want to support.

        var dragMgr = new DragDropManager();
        dragMgr.AddControl<Category>( categoriesTreeView );
        dragMgr.AddControl<Category, Item>( itemsListView );
        dragMgr.AddHandler<Category>( categoriesTreeView, dragMgr_ProcessMove );
        dragMgr.AddHandler<Item, Category>( categoriesTreeView, dragMgr_ProcessLink );
  2. Implement your drop handlers, which will resemble these.

        void dragMgr_ProcessMove( object sender, HierarchicalPlacementArgs<Category> moveArgs )
        {
           moveArgs.Apply();
        }
    
        void dragMgr_ProcessLink( object sender, LinkArgs<Item, Category> e )
        {
           e.TargetLoc.Items.Add( e.ItemToLink );
        }
  3. Implement the applicable interfaces on your item-level view-models or, if you don't use the MVVM pattern, whatever is in the ItemsSource collections

    • IMoveable<T> is for items that can be moved (dragged) from one location to another. You can add logic to the CanMove methods that disallows otherwise valid move operations per your requirements.
    • ITreeNode<T> is for items appearing in a TreeView, to indicate the SubItems and Parent properties.

Demonstration Application

Download the demo to see what sets the Qnomad Drag-and-Drop Manager for WPF apart. The demo consists of a TreeView that holds categories, and a ListView populated with the selected category's items. These two controls together have a total of three types of drag-drop operations setup on them.

  1. Move a category within the TreeView
  2. Move an item within the ListView
  3. Link an item with another category

Manager Features

The Qnomad Drag-and-Drop Manager for WPF is a flexible and powerful solution for drag-and-drop within and between TreeViews and ListViews, and includes these features:

Purchase

If you would like to use the Drag-and-Drop Manager in your own software, please enter the number of Developer Licenses you require then click the "Add to Cart" button to be directed to PayPal. Upon purchase, you will receive the developer assemblies, along with API documentation and the demo app's source code. The library's full source code is included when you also add a Blueprint License to your order. Free support is provided for all customers to ensure maximum benefit from your purchase. Minor releases will also be yours at no additional cost. If you have any questions, please email adrian@saucepos.com.