Ich verwende WPF ListView, bei dem SelectionMode auf Extended festgelegt ist (Sie können mehrere Elemente nur mit gedrückter Strg-Taste auswählen). Ich muss D&D zwischen zwei ListViews implementieren. Um das Drag-Ereignis auszuführen, habe ich das DragItem-Ereignis in WinForms verwendet, aber ein solches Ereignis wird in wpf nicht bereitgestellt. Ich habe beschlossen, ListViewItem PreviewMouseDownClick zu verwenden
private void ListViewItemMouseDownClick(object sender, MouseButtonEventArgs e)
{
if (!this.AllowDragDrop)
{
return;
}
DragDrop.DoDragDrop(
ListViewItemsCollection, this.SelectedItems, DragDropEffects.Copy | DragDropEffects.Move);
}
Leider hat eine solche Lösung einen Fehler: das Auswählen eines einzelnen Elements (ohne gedrückte Strg-Taste) funktioniert. Ich muss jedoch doppelklicken, um ein Element auszuwählen, während Strg gedrückt ist, um mehrere Elemente auszuwählen. Es gibt keinen Unterschied zwischen der Verwendung von ListView's PreviewMouseDown oder ListViewItem's PreviewMouseDown. Irgendwelche Ideen, wie das Problem gelöst werden kann?