在我的WPF應用程序我正在處理一個ListBox SelectionChanged事件,它運行良好。WPF:我如何處理列表框項目上的點擊?
現在我需要處理一個點擊事件(即使是已經選擇的項目);我試過MouseDown但它不起作用。 我如何處理列表框點擊一個項目?
謝謝!
在我的WPF應用程序我正在處理一個ListBox SelectionChanged事件,它運行良好。WPF:我如何處理列表框項目上的點擊?
現在我需要處理一個點擊事件(即使是已經選擇的項目);我試過MouseDown但它不起作用。 我如何處理列表框點擊一個項目?
謝謝!
也許試試PreviewMouseDown
事件。 MouseDown
事件被吞併並轉換爲SelectionChanged
事件。
唯一不足的是,PreviewMouseDown
會發生在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
}
}
列表框在內部使用鼠標按下進行選擇改變。所以你可以使用預覽鼠標按下事件。
除了預覽鼠標下來,你可以使用EventManager.RegisterClassHandler ...
EventManager.RegisterClassHandler(typeof(ListBoxItem), ListBoxItem.MouseLeftButtonDownEvent, new RoutedEventHandler(EventBasedMouseLeftButtonHandler));
private static void EventBasedMouseLeftButtonHandler(object sender, RoutedEventArgs e)
{
}
讓我知道如果這能幫助...
這是在這裏得到解答:http://stackoverflow.com/a/821609/58768 –
@modosansreves此問題詢問Click。點擊是特殊的。顯然被劫持並變成了SelectionChanged。 DoubleClick不是... –
這是一個類似的問題;其答案是所有方法的一個很好的總結。 http://stackoverflow.com/q/1271375/1175496 –