This is a migrated thread and some comments may be shown as answers.

Drag And Drop

1 Answer 69 Views
TreeView
This is a migrated thread and some comments may be shown as answers.
Pablo Tola
Top achievements
Rank 2
Pablo Tola asked on 14 Feb 2011, 11:05 PM
I want to prevent dragging items to the same level as the root, how do I do this?

thanks.

1 Answer, 1 is accepted

Sort by
0
Petar Mladenov
Telerik team
answered on 17 Feb 2011, 02:23 PM
Hello Pablo Tola,

Imagine a RadTreeView's rootlevel is bound to a collection of CategoryViewmodels. You can use the RadDragDropManager's  OnDrop event  to prevent dropping an item in the root level when you drag an item below the tree items. On the other hand, you have to use the PreviewDragEnded event of the RadTreeView in order to prevent dropping before and after a rootlevel item. Please check out this code and let me know how it goes on your side.
public MainPage()
       {
           InitializeComponent();
           this.DataContext = new TreeViewViewModel();
           this.treeView.AddHandler(RadDragAndDropManager.DropQueryEvent, new EventHandler<DragDropQueryEventArgs>(OnDropQuery), true);
           this.treeView.AddHandler(RadDragAndDropManager.DragQueryEvent, new EventHandler<DragDropQueryEventArgs>(OnDragQuery), true);
           this.treeView.PreviewDragEnded += new RadTreeViewDragEndedEventHandler(TreeView_PreviewDragEnded);
           this.treeView.DragOverTree += new DragOverTreeEventHandler(TreeView_DragOverTree);
       }
       void TreeView_PreviewDragEnded(object sender, RadTreeViewDragEndedEventArgs e)
       {
           if (e.TargetDropItem.Item is CategoryViewModel)
           {
               if (e.DropPosition == DropPosition.After ||
                   e.DropPosition == DropPosition.Before)
               {
                   e.Handled = true;
               }
           }
       }
       // OnDropQuery event handler
       private void OnDropQuery(object sender, DragDropQueryEventArgs e)
       {
           if (e.Options.Destination == this.treeView)
           {
               e.QueryResult = false;
           }
       }


Greetings,
Petar Mladenov
the Telerik team
Tags
TreeView
Asked by
Pablo Tola
Top achievements
Rank 2
Answers by
Petar Mladenov
Telerik team
Share this question
or