Index: Core/Common/src/Core.Common.Controls.TreeView/DragDropHandler.cs
===================================================================
diff -u -rb060eed93e2290dbe0a36da6e5556002625b73d5 -rae6c53b67bd2ae5e49606b31fd1575eecc58620d
--- Core/Common/src/Core.Common.Controls.TreeView/DragDropHandler.cs (.../DragDropHandler.cs) (revision b060eed93e2290dbe0a36da6e5556002625b73d5)
+++ Core/Common/src/Core.Common.Controls.TreeView/DragDropHandler.cs (.../DragDropHandler.cs) (revision ae6c53b67bd2ae5e49606b31fd1575eecc58620d)
@@ -114,25 +114,16 @@
}
var treeNodeInfo = getTreeNodeInfoForData(nodeDropTarget.Tag);
+ var canDrop = treeNodeInfo.CanDrop != null && treeNodeInfo.CanDrop(nodeDragging.Tag, nodeDropTarget.Tag);
- DragOperations allowedOperations = treeNodeInfo.CanDrop != null
- ? treeNodeInfo.CanDrop(nodeDragging.Tag, nodeDropTarget.Tag)
- : DragOperations.None;
+ e.Effect = canDrop ? DragDropEffects.Move : DragDropEffects.None;
- e.Effect = ToDragDropEffects(allowedOperations);
-
if (PlaceholderLocation.None == placeholderLocation)
{
return;
}
- // Determine whether or not the node can be dropped based on the allowed operations.
- // A node can also be a valid drop target if it is the root item (nodeDragging.Parent == null).
- var dragOperations = treeNodeInfo.CanDrop != null
- ? treeNodeInfo.CanDrop(nodeDragging.Tag, nodeDropTarget.Tag)
- : DragOperations.None;
-
- if (DragOperations.None != dragOperations)
+ if (canDrop)
{
DrawPlaceholder(treeView, nodeOver, placeholderLocation);
}
@@ -310,10 +301,5 @@
}
return loc;
}
-
- private DragDropEffects ToDragDropEffects(DragOperations operation)
- {
- return (DragDropEffects) Enum.Parse(typeof(DragDropEffects), operation.ToString());
- }
}
}
\ No newline at end of file
Index: Core/Common/src/Core.Common.Controls.TreeView/TreeNodeInfo.cs
===================================================================
diff -u -rb060eed93e2290dbe0a36da6e5556002625b73d5 -rae6c53b67bd2ae5e49606b31fd1575eecc58620d
--- Core/Common/src/Core.Common.Controls.TreeView/TreeNodeInfo.cs (.../TreeNodeInfo.cs) (revision b060eed93e2290dbe0a36da6e5556002625b73d5)
+++ Core/Common/src/Core.Common.Controls.TreeView/TreeNodeInfo.cs (.../TreeNodeInfo.cs) (revision ae6c53b67bd2ae5e49606b31fd1575eecc58620d)
@@ -139,10 +139,9 @@
/// Gets or sets a function for checking whether or not the tree node can be dropped to another location.
/// The first object parameter represents the data of the tree node which is dragged.
/// The second object parameter represents the data of the tree node being considered as drop target.
- /// The return value indicates what operation is valid when the tree node is dropped onto the drop target.
///
/// When dragging a node, the function of the of the drop target should be called.
- public Func