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

Antworten auf die Frage(6)

Ihre Antwort auf die Frage