private void ListView_MouseDoubleClick(object sender, MouseButtonEventArgs e) { DependencyObject dp = (DependencyObject)e.OriginalSource; while ((dp != null) && (dp != (ListView)sender)) { if (dp is ListViewItem) { if (dp is FrameworkElement) { FrameworkElement frameworkElement = (FrameworkElement)dp; if (frameworkElement.DataContext is LazyTrack) { sessionViewModel.playTrack((LazyTrack)frameworkElement.DataContext); } } break; } dp = VisualTreeHelper.GetParent(dp); } }