Estoy usando WPF ListView, donde SelectionMode se establece Extendido (puede seleccionar varios elementos sólo con la tecla ctrl presionada). Necesito implementar D&D, entre dos de los ListViews. Para realizar evento de arrastre, he utilizado DragItem evento en WinForms, pero en tal caso no está previsto en wpf. He decidido usar ListViewItem PreviewMouseDownClick

private void ListViewItemMouseDownClick(object sender, MouseButtonEventArgs e)
{
    if (!this.AllowDragDrop)
    {
        return;
    }

    DragDrop.DoDragDrop(
        ListViewItemsCollection, this.SelectedItems, DragDropEffects.Copy | DragDropEffects.Move);
}

Por desgracia, este tipo de solución tiene un fallo: la selección de un único elemento (sin ctrl presionado) obras. Sin embargo, tengo que hacer doble clic para seleccionar el elemento mientras se pulsa ctrl para seleccionar varios elementos. No hay ninguna diferencia cuando se usa ListView PreviewMouseDown o ListViewItem del PreviewMouseDown. Alguna idea de cómo solucionar el problema?

  • Gong Arrastrar y Soltar Marco de WPF que apoya MVVM
  • Ver esto: stackoverflow.com/questions/6929474/…
  • Gong Arrastrar y Soltar no está funcionando – instalado desde NuGet. (No recuerdo exactamente lo que estaba mal, pero la aplicación no podría cargar assemlby). Voy a tratar de la segunda solución. Parece un hack (espero que haya solución elegante) pero si funciona.. vale la pena intentarlo.
  • Por desgracia, la aplicación que uso MouseMove no está funcionando con la ampliación de las SelectionMode. Cuando se seleccionan varios elementos y me arrastra con ellos a través de uno de ellos, sólo el uno de ellos se queda seleccionado .
  • La necesidad de obtener la última GongSolutions.WPF.DragDrop biblioteca de github.com/punker76/gong-wpf-dragdrop, he compilado y la demo funciona bien.
InformationsquelleAutor | 2013-03-18

1 Comentario

  1. -1

    Encontrado solución, funciona como un chram:
    social.msdn.microsoft.com.
    Me uní a ella con el código de moncadad del enlace. Gracias!

    • Por favor enviar la respuesta aquí en vez de sólo la prestación de un enlace.

Dejar respuesta

Please enter your comment!
Please enter your name here