Я хочу получать уведомления, когда элемент в 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
? Может быть, для a MouseLeftButtonDownEvent
мне нужен какой-то другой обработчик и почему он не работает?
Я также попытался подклассифицировать ListBoxItem
и переопределить OnMouseLeftButtonDown
- но он также не вызван.
Марк