Вот, к примеру в Containers, ловится нажатие мыши и ожидается сдвиг курсора хотя бы на 3 пиксела.
Если такое произошло, то задействуется Mechanisms.TrackToDrop, и затем, в зависимости от операции (copy или move) делается копирование отображения, выполняется Controllers.Drop и\или удаляется старое выделение.

Чё-то сложновато, я думал - будет проще.