Я пытаюсь создать автономный элемент управления Winforms под названием DragDropListView. Это происходит от ListView.
У меня есть код, который позволяет пользователю сортировать элементы списка в элементе управления, перетаскивая элементы в новом месте. Я добился этого путем переопределения OnDragDrop, OnDragOver, OnDragEnter, OnItemDrag.
У меня проблема с перетаскиванием из одного списка в совершенно другой. Событие запускается в другом представлении списка, как и ожидалось, но метод не принимает аргумент «отправитель», поэтому нет хорошего способа определить, откуда перетаскиваются элементы, и я никак не могу понять, как на самом деле получить предметы перетаскиваются. Текущий код работает с такими вещами, как «this.SelectedItems», но я бы хотел, чтобы он был «sender.SelectedItems».
Полагаю, причина отсутствия аргумента отправителя в том, что элемент управления не должен отвечать за то, что он так много знает о своей среде, и форма хоста должна обрабатывать взаимодействие между двумя элементами управления, но я пытаюсь создать сам Содержит элементы управления, которые имеют эту функциональность, поэтому позволить ему стечь на форму не будет работать.
Идеи