WPF:如何处理在列表框项上的单击
本文关键字:列表 单击 何处理 处理 WPF | 更新日期: 2023-09-27 18:04:33
在我的WPF应用程序中,我正在处理一个ListBox SelectionChanged事件,它运行良好。
现在我需要处理一个点击事件(即使已经选择的项目);我试过鼠标向下,但它不起作用。如何处理在列表框中单击一个项目?
处理PreviewMouseDown事件:
private void listBox_PreviewMouseDown(object sender, MouseButtonEventArgs e)
{
var item = ItemsControl.ContainerFromElement(listBox, e.OriginalSource as DependencyObject) as ListBoxItem;
if (item != null)
{
// ListBox item clicked - do some cool things here
}
}
也许可以试试PreviewMouseDown
事件。MouseDown
事件被吞入并转化为SelectionChanged
事件。
唯一的缺点是PreviewMouseDown
将在SelectionChanged
之前发生。
Listbox内部使用鼠标向下执行选择更改。所以你可以使用预览鼠标向下事件
除了预览鼠标向下,你还可以使用EventManager.RegisterClassHandler…
EventManager.RegisterClassHandler(typeof(ListBoxItem), ListBoxItem.MouseLeftButtonDownEvent, new RoutedEventHandler(EventBasedMouseLeftButtonHandler));
private static void EventBasedMouseLeftButtonHandler(object sender, RoutedEventArgs e)
{
}