C#, WPF, case von "object sender" nach ListBox

12/01/2008 - 19:47 von Jens Müller | Report spam
Hallo,

ich habe eine Listbox und möchte Drag&Drop auslösen, wenn die Maus um
die entsprechende Strecke bewegt wurde:

in XAML habe ich <ListBox MouseLeftButtonDown="onListBoxMouseMove"/>
und im code behind:

private void onListBoxMouseMove(object sender, MouseEventArgs e)
{
if (e.LeftButton == MouseButtonState.Pressed)
{
if (Math.Abs(e.GetPosition(this).X - mouseDownPoint.X)

SystemParameters.MinimumHorizontalDragDistance ||


Math.Abs(e.GetPosition(this).Y - mouseDownPoint.Y) >
SystemParameters.MinimumVerticalDragDistance)
{
DragDropEffects dropEffect =
((ListBox)sender).DoDragDrop(((ListBox)sender).Items(indexOfItemUnderMouseToDrag),
DragDropEffects.Move);

}
}
}


Laut Doku ist die Methode DoDragDrop bei jedem Control-Ojekt vorhanden.
Leider Zeigt Intellisense sie in obigem Code nicht an und es kommt auch
zum Fehler.

Wo ist mein Denkfehler?

Danke!
 

Lesen sie die antworten

#1 Frank Dzaebel
12/01/2008 - 20:54 | Warnen spam
Hallo Jens,

Laut Doku ist die Methode DoDragDrop bei jedem Control-Ojekt vorhanden.
Leider Zeigt Intellisense sie in obigem Code nicht an und es kommt auch
zum Fehler. Wo ist mein Denkfehler?



Der Denkfehler ist, dass es unter WPF der:

[System.Windows.Controls Namespace ()]
http://msdn2.microsoft.com/en-us/li...trols.aspx

mit der [ListBox Class (System.Windows.Controls)]
http://msdn2.microsoft.com/en-us/li...stbox.aspx

ist, und unter WinForms die:

[Control-Hierarchie (System.Windows.Forms)]
http://msdn2.microsoft.com/de-de/library/thf5cxw1(VS.80).aspx

mit der [ListBox-Klasse (System.Windows.Forms)]
http://msdn2.microsoft.com/de-de/li...ms.listbox(VS.80).aspx

___________________________________
Die WPF-ListBox hat also kein DoDragDrop:

[ListBox-Member (System.Windows.Controls)]
http://msdn2.microsoft.com/de-de/li...mbers.aspx


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen