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 ?