Many thanks for the example Miroslav
I needed to make one or two minor changes to get things to work as in my case the tree is databound, but things seem to be working fine now. Smashing !
private void OnDropQuery(object sender, DragDropQueryEventArgs e)
var destination = e.Options.Destination as RadTreeViewItem;
var cue = e.Options.DragCue as TreeViewDragCue;
// Do not allow dropping inside items which start with "B", only handle cases
// where a drop is currently allowed.
TreeItem destItem = destination.Item as TreeItem;
if (destination != null
&& e.Options.Status == DragStatus.DropDestinationQuery
&& e.QueryResult == true
&& destination.DropPosition == DropPosition.Inside
// Denying a drop will set the cue.IsDropPossible = false
e.QueryResult = false;
// We only need to give a reason:
cue.DragActionContent = "Cannot drop into Bs";