6 Stimmen

Ziehen und ablegen in der WPF-ListView

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?

-2voto

Gefundene Lösung, funktioniert wie ein Zauber: social.msdn.microsoft.com. Ich habe es mit dem Code aus moncadads Link verbunden. Danke!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X