Bonjour à tous,
J'essai actuellement de réaliser une opération de drag and drop, avec 2 itemsControls.
Ces 2 items controles contiennent chacun une ObservableCollection<Carte> avec l'objet Carte composé d'une image (récupéré en Uri Pack), et une année.
J'essai de réaliser une opération de drag and drop d'un itemsControl à l'autre.
Je m'inspire de ceci
Mon soucis, est que je n'arrive pas à récupérer mon objet Carte, dans la méthode MouseMove, comme suggéré dans l'exemple ci-dessus.
je cherche donc à adapter ce code là :
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 private void List_MouseMove(object sender, MouseEventArgs e) { // Get the current mouse position Point mousePos = e.GetPosition(null); Vector diff = startPoint - mousePos; if (e.LeftButton == MouseButtonState.Pressed && Math.Abs(diff.X) > SystemParameters.MinimumHorizontalDragDistance || Math.Abs(diff.Y) > SystemParameters.MinimumVerticalDragDistance ) { // Get the dragged ListViewItem ListView listView = sender as ListView; ListViewItem listViewItem = FindAnchestor<ListViewItem>((DependencyObject)e.OriginalSource); // Find the data behind the ListViewItem Contact contact = (Contact)listView.ItemContainerGenerator. ItemFromContainer(listViewItem); // Initialize the drag & drop operation DataObject dragData = new DataObject("myFormat", contact ); DragDrop.DoDragDrop(listViewItem, dragData, DragDropEffects.Move); } }
mais au lieu de prendre un listView, je veux le faire avec un itemsControl.
Pour le moment j'arrive à récupérer ma liste, mais je n'arrive pas à récupérer l'item sélectionné (ma carte en fait), chose qui est faite avec le ListViewItem listViewItem = FindAnchestor<ListViewItem>((DependencyObject)e.OriginalSource);
J'ai l'impression de ne pas avoir choisis le bon control, mais d'un autre coté, récupérer simplement un objet que l'on sélectionné dans une liste, est le B-A-BA.
Est-il possible de le faire ?
Partager