Еще один гоча:
Код платформы, вызывающий Drag-события, поглощает все исключения. Вы можете подумать, что код вашего события работает без сбоев, в то время как он генерирует исключения повсюду. Вы не можете их видеть, потому что их украл каркас.
Вот почему я всегда помещаю try / catch в эти обработчики событий, просто чтобы знать, генерируют ли они какие-либо исключения. Я обычно ставлю Debugger.Break (); в подвохе.
Перед выпуском, после тестирования, если кажется, что все работает, я удаляю или заменяю их реальной обработкой исключений.