Bonjour à tous,

J'ai ma MainWindow avec une MainWindow_ListBox.
Dedans, j'ai un MyUserControl qui contient une UserControl_ListBox.
Je souhaite pouvoir Drag&Dropper des élements de la première dans la seconde.
J'initie donc le DoDragDrop dans ma MainWindow_ListBox et je souhaite maintenant implémenter le DragEnter (puis DragLeave et DragMove) pour ma UserControl_ListBox.

Dans le code de MyUserControl:
en XAML :
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
 <ListBox Name="UserControl_ListBox" ... AllowDrop="True" DragEnter="UserControl_ListBox_DragEnter">
et en code-behind :
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
 
 public static readonly RoutedEvent _userControl_ListBoxDragEnter =
           EventManager.RegisterRoutedEvent("UserControl_ListBoxDragEnter", RoutingStrategy.Bubble, typeof(DragEventHandler), typeof(MyUserControl));
 
private void UserControl_ListBox_DragEnter(object sender, DragEventArgs e)
{
     RaiseEvent(new RoutedEventArgs(_userControl_ListBoxDragEnter ));
 }
 
public event DragEventHandler UserControl_ListBoxDragEnter
{
      add { AddHandler( (_userControl_ListBoxDragEnter , value); }
      remove { RemoveHandler(_userControl_ListBoxDragEnter , value); 
}

Déclaration de l'évenement dans MyUserControl dans ma Window :
XAML :
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
<my:MyUserControl UserControl_ListBoxDragEnter="UserControl_ListBoxDragEnter" AllowDrop="True"/>
et en code-behind de ma window :
Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
private void UserControl_ListBoxDragEnter(object sender, DragEventArgs e)
{
    if (!e.Data.GetDataPresent("Image"))
    {
          e.Effects = DragDropEffects.None;
          e.Handled = true;
    }
}


Seulement, au moment du DragEnter dans ma UserControl_ListBox, j'ai une exception qui me dit :
Impossible de convertir l'objet de type 'System.Windows.RoutedEventArgs' en type 'System.Windows.DragEventArgs'.
Quelle est donc la syntaxe pour pouvoir router une évènement de type DragEventArgs?
Je vous remercie d'avance.