Я реализовал событие для двойного щелчка мыши по элементу ListView примерно так же, как я это делал для Windows Forms.
XAML-код:
<ListView x:Name="eventsView" MouseDoubleClick="eventsView_MouseDoubleClick" >
и логика:
private void eventsView_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
Details d = new Details((EventRecord)eventsView.SelectedItem);
d.ShowDialog();
}
Т.е. по двойному щелчку мыши я просто открывал окно с детальной информацией по выбранному элементу. Но, пытаясь отследить событие двойного щелчка мыши по заголовку колонки, я столкнулся с такой проблемой, что в этом случае все равно вызывалась детальная информация, т.к. выбранный элемент никуда не девался.
Тогда я решил перенести обработку событий даблклика не для всего ListView, а для каждого его элемента (что правильнее).
В XAML для нашего ListView добавляем информацию о стиле его контейнеров, где добавляем только информацию для обработки событий мыши :
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<EventSetter Event="MouseDoubleClick" Handler="eventsViewItem_MouseDoubleClick" />
</Style>
</ListView.ItemContainerStyle>
Ну и логика для этого фрагмента:
private void eventsViewItem_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
if (eventsView.SelectedItems.Count > 0)
{
Details d = new Details((EventRecord)eventsView.SelectedItem);
d.ShowDialog();
}
}
DenTNT недавно публиковал (посмотреть все)
- C#: Сравнить два массива - 12.12.2024
- EVE-Online: Фильтры каналов - 23.11.2024
- Не приходит СМС для авторизации на сайте Госуслуги - 01.11.2024