我无法弄清楚如何在ListView中重新排列多个项目。这就是我处理一个项目的方式:
protected override void OnDragDrop(DragEventArgs drgevent)
{
//get target index and other things
if (drgevent.Data.GetDataPresent(typeof(ListViewItem)))
{
ListViewItem draggedItem = (ListViewItem)drgevent.Data.GetData(typeof(ListViewItem));
int origIndex = draggedItem.Index;
if (origIndex != targetIndex)
{
var e = new RearrangeItemEventArgs(origIndex, targetIndex);
OnRearrangeItem(e);
}
}
}
但即使在启用MultiSelect
之后,drgevent.Data
仍然只包含ListViewItem
(和WindowsForms10PersistentObject
,但我不知道那是什么。)
我希望它包含SelectedListViewItemCollection
,ListViewItemCollection
,甚至ListViewItem[]
,但它们都不起作用。
那么我如何获得所有选定的项目,而不仅仅是其中一项呢?