Jak przechwycić kliknięcie myszą na elemencie w polu listy w WPF?
Chcę otrzymywać powiadomienia, gdy element listy ListBox zostanie kliknięty przez mysz, niezależnie od tego, czy jest już zaznaczony, czy nie.
Szukałem i znalazłem to: (http://kevin-berridge.blogspot.com/2008/06/wpf-listboxitem-double-click.html zobacz komentarze)
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));
To działa, ale robi to zaDoubleClick
. Nie mogę tego zrobić za jednym kliknięciem. próbowałemMouseLeftButtonDownEvent
- jak nie wydaje się byćMouseClick
wydarzenie, ale nie jest wywoływane.
Nieco bardziej ogólne pytanie: Jak mogę zobaczyć, które wydarzenia istnieją i które programy obsługi odpowiadają im i kiedy rzeczywiście coś robią? Na przykład, co mówi mi to zaMouseDoubleClickEvent
PotrzebujęMouseButtonEventHandler
? Może zaMouseLeftButtonDownEvent
Potrzebuję innej obsługi i dlatego nie działa?
Próbowałem również podklasyListBoxItem
i nadpisaćOnMouseLeftButtonDown
- ale też nie jest wywoływany.
Marc