Hello Greg Brondo,
Yes, I can confirm that the QueryResult defines whether a drop will be possible.
Databinding directly would of course not be possible but you are right that this can happen with some kind of attached property.
Binding to an ICommand is also possible and will work in simple scenarios but there are some things that need to be addressed.
1. A DragDrop operation has two parameters, a Drop Target and a payload. This can be solved by binding a command for each object but creating a separate delegate command for each drop target seems like an overkill. An alternative may be to create a special command that will handle this scenario.
2. DragDrop normally has feedback, quite possibly some kind of text. The default command does not provide for this. Often "Drop Possible" / "Drop impossible" feedback is needed.
3. Normally the DragQuery needs to be handed as well. Should there be a separate command that acts when an object is about to be dragged (CanExecute) and when it is dropped (Execute)?
We do not plan to add Command support to the DragDrop just yet but I will be happy if our discussion here will produce something that is useful in these scenarios for other people as well.
I quickly put a basics of the idea in practice. You can see the result in the attached project. It is far from complete but it is a start.
What do you think about the above points?
Best wishes,
Miroslav
the Telerik team