Ich möchte benachrichtigt werden, wenn ein Element in einer ListBox mit der Maus angeklickt wird, ob es bereits ausgewählt ist oder nicht.Wie man einen Mausklick auf ein Element in einer ListBox in WPF erfasst?
Ich suchte und fand diese: (http://kevin-berridge.blogspot.com/2008/06/wpf-listboxitem-double-click.html die Kommentare sehen)
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));
Dies funktioniert, aber es macht es für einen DoubleClick
. Ich kann es nicht für einen einzigen Klick funktionieren. Ich habe versucht, MouseLeftButtonDownEvent
- da scheint es kein MouseClick
Ereignis, aber es wird nicht aufgerufen.
Eine etwas allgemeinere Frage: Wie kann ich sehen, welche Ereignisse existieren und welche Handler ihnen entsprechen und wann sie tatsächlich etwas tun? Zum Beispiel, was sagt mir, dass ich für eine MouseDoubleClickEvent
brauche ich eine MouseButtonEventHandler
? Vielleicht brauche ich für einen MouseLeftButtonDownEvent
einen anderen Handler und deshalb funktioniert es nicht?
Ich versuchte auch Unterklasse ListBoxItem
und überschreiben OnMouseLeftButtonDown
- aber es wird auch nicht aufgerufen.
Marc
Ich habe gewählt, jedes listboxitem mit Knopf zu wickeln und Knopf Ereignis stattdessen zu benutzen. https://stackoverflow.com/questions/17057022/getting-listbox-item-index-from-button-click – Dummy