Как захватить щелчок мышью на элементе в ListBox в WPF?
Я хочу получать уведомления, когда элемент в ListBox щелкается мышью, независимо от того, выбран он или нет.
Я искал и нашел это :(http://kevin-berridge.blogspot.com/2008/06/wpf-listboxitem-double-click.html смотрите комментарии)
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));
Это работает, но это делает это дляDoubleClick
, Я не могу заставить его работать за один клик. Я старалсяMouseLeftButtonDownEvent
- поскольку, по-видимому, нетMouseClick
событие, но оно не вызывается.
Немного более общий вопрос: как я могу увидеть, какие события существуют и какие обработчики им соответствуют и когда они действительно что-то делают? Например, что говорит мне, что дляMouseDoubleClickEvent
мне нужноMouseButtonEventHandler
? Может быть дляMouseLeftButtonDownEvent
Мне нужен какой-то другой обработчик, и поэтому он не работает?
Я также пробовал создавать подклассыListBoxItem
и переопределитьOnMouseLeftButtonDown
- но он также не вызывается.
Марк