Вы можете добавить обработчик событий в свои ListViewItems, добавив следующий XAML в ваш <Window.Resources>
:
<Style TargetType="ListViewItem">
<EventSetter Event="MouseDoubleClick" Handler="MyEventHandler" />
</Style>
Затем вы должны добавить обработчик событий в свой код:
private void MyEventHandler(object sender, MouseButtonEventArgs e)
{
ListViewItem MyListViewItem = (ListViewItem)sender;
MyClass MyObject = (MyClass)Item.Content;
e.Handled = true;
}
В этом примере MyObject
содержит объект, связанный с ListViewItem, по которому щелкнули.Например, в одном из моих проектов у меня есть ListView, связанный с ObservableCollection<SongData>
.Я бы тогда использовал следующий код:
private void MyEventHandler(object sender, MouseButtonEventArgs e)
{
ListViewItem Item = (ListViewItem)sender;
SongData Song = (SongData)Item.Content;
// Example
MessageBox.Show(Song.Title + " by " + Song.Artist);
e.Handled = true;
}
Я не знаю, продвинет ли это вас дальше, но это должно работать нормально.
Да, и, кстати, вы могли бытакже прикрепите обработчик событий к ListView
, используйте свойство SelectedItem
, но для меня это привело к некоторым проблемам, например, если вы щелкнете заголовок столбца или пробел при выбранном элементе, он также вызовет обработчик события.Поэтому я предпочел бы использовать свой первый предложенный подход.