Wie erfasse ich einen Mausklick auf ein Element in einer ListBox in WPF?
Ich möchte benachrichtigt werden, wenn ein Element in einer ListBox mit der Maus angeklickt wird, unabhängig davon, ob es bereits ausgewählt ist oder nicht.
Ich habe gesucht und folgendes gefunden: (http://kevin-berridge.blogspot.com/2008/06/wpf-listboxitem-double-click.html siehe die Kommentare)
private void AddDoubleClickEventStyle(ListBox listBox, MouseButtonEventHandler mouseButtonEventHandler)
{
if (listBox.ItemContainerStyle == null)
listBox.ItemContainerStyle = new Style(typeof(ListBoxItem));
listBox.ItemContainerStyle.Setters.Add(new EventSetter()
{
Event = MouseDoubleClickEvent,
Handler = mouseButtonEventHandler
});
}
//Usage:
AddDoubleClickEventStyle(listView1, new MouseButtonEventHandler(listView1_MouseDoubleClick));
Das funktioniert, aber es funktioniert für aDoubleClick
. Ich kann es jedoch nicht mit einem einzigen Klick zum Laufen bringen. Ich habe es versuchtMouseLeftButtonDownEvent
- Da scheint es keine zu gebenMouseClick
Ereignis, aber es wird nicht aufgerufen.
Eine etwas allgemeinere Nebenfrage: Wie kann ich sehen, welche Ereignisse existieren und welche Handler ihnen entsprechen und wann sie tatsächlich etwas tun? Zum Beispiel, was sagt mir das für einMouseDoubleClickEvent
ich brauche einMouseButtonEventHandler
? Vielleicht für eineMouseLeftButtonDownEvent
Ich brauche einen anderen Handler und deshalb funktioniert es nicht?
Ich habe auch versucht, Unterklassen zu bildenListBoxItem
und überschreibenOnMouseLeftButtonDown
- aber es wird auch nicht angerufen.
Marc