Faites glisser et déposez les dans WPF ListView
Je suis en utilisant WPF ListView, où SelectionMode est définie à l'Étendue (vous pouvez sélectionner plusieurs éléments seulement avec ctrl enfoncé). J'ai besoin de mettre en œuvre des D&D, entre deux ListViews. Pour effectuer événement glisser, j'ai utilisé DragItem événement en WinForms, mais un tel événement n'est pas fourni dans wpf. J'ai décidé d'utiliser ListViewItem PreviewMouseDownClick
private void ListViewItemMouseDownClick(object sender, MouseButtonEventArgs e)
{
if (!this.AllowDragDrop)
{
return;
}
DragDrop.DoDragDrop(
ListViewItemsCollection, this.SelectedItems, DragDropEffects.Copy | DragDropEffects.Move);
}
Malheureusement, cette solution a un bug: la sélection d'un seul élément (sans la touche ctrl enfoncée). Cependant, j'ai besoin de double-cliquez sur pour sélectionner l'élément, tandis que la touche ctrl est enfoncée pour sélectionner plusieurs éléments. Il n'y a pas de différence lors de l'utilisation du ListView PreviewMouseDown ou ListViewItem de PreviewMouseDown. Toutes les idées sur la façon de résoudre le problème?
Voir ceci: stackoverflow.com/questions/6929474/...
Gong est le Glisser-Déposer ne fonctionne pas installé NuGet. (Je ne me souviens pas exactement de ce qui est mal, mais l'app ne pouvait pas charger assemlby). Je vais essayer la deuxième solution. Il ressemble à un hack (j'espère qu'il y élégante solution), mais si elle est de travailler.. il vaut la peine d'essayer.
Malheureusement, la mise en œuvre que l'utilisation MouseMove ne fonctionne pas dans l'Étendue SelectionMode. Lorsque plusieurs éléments sont sélectionnés, et je les faire glisser par l'un d'eux, seul l'un d'eux séjour sélectionné .
Procurez-vous la dernière GongSolutions.WPF.DragDrop de la bibliothèque à partir de github.com/punker76/gong-wpf-dragdrop, j'ai juste compilé et la démo fonctionne très bien.
OriginalL'auteur | 2013-03-18
Vous devez vous connecter pour publier un commentaire.
Trouvé la solution, fonctionne comme un chram:
social.msdn.microsoft.com.
J'ai commencé avec le code de moncadad du lien. Merci!
OriginalL'auteur