【发布时间】:2010-11-19 06:33:40
【问题描述】:
我想在鼠标单击 ListBox 中的项目时收到通知,无论它是否已被选中。
我搜索并找到了这个:(http://kevin-berridge.blogspot.com/2008/06/wpf-listboxitem-double-click.html 查看 cmets)
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 - 但它也没有被调用。
马克
【问题讨论】:
-
我选择用按钮包装每个列表框项并改用按钮事件。 stackoverflow.com/questions/17057022/…
标签: wpf listbox events click listboxitem