private void DataContext_PropertyChanged(object sender, PropertyChangedEventArgs e) { if (e.PropertyName == "CurrentIndex" && dataContext.CurrentIndex > -1) { SeriesListView.ScrollIntoView(dataContext.RetrievedSeries[dataContext.CurrentIndex]); } }
private void DataContext_SelectTheseSeries(object sender, EventArgs e) { var series = sender as IEnumerable <string>; SeriesListView.UnselectAll(); foreach (var item in series) { SeriesListView.SelectedItems.Add(item); } SeriesListView.ScrollIntoView(series.Last()); }
private void TextBlock_MouseMove(object sender, MouseEventArgs e) { if (e.LeftButton == MouseButtonState.Pressed && dataContext != null) { if (sender is ListViewItem serie) { var visibleSeries = dataContext.RetrievedSeries.ToList(); SeriesListView.SelectionMode = SelectionMode.Multiple; var thisSerie = serie.Content.ToString(); var indexOfFirst = SeriesListView.SelectedIndex; var indexOfLast = dataContext.RetrievedSeries.IndexOf(thisSerie); if (!isMouseDown) { isMouseDown = true; } if (indexOfFirst == indexOfLast) { SeriesListView.UnselectAll(); SeriesListView.SelectedItems.Add(visibleSeries[indexOfFirst]); } else if (indexOfFirst < indexOfLast) { for (int i = SeriesListView.SelectedItems.Count - 1; i > 0; i--) { SeriesListView.SelectedItems.RemoveAt(i); } for (int i = indexOfFirst; i <= indexOfLast; i++) { SeriesListView.SelectedItems.Add(visibleSeries[i]); } } else if (indexOfFirst > indexOfLast) { for (int i = SeriesListView.SelectedItems.Count - 1; i > 0; i--) { SeriesListView.SelectedItems.RemoveAt(i); } for (int i = indexOfFirst; i >= indexOfLast; i--) { SeriesListView.SelectedItems.Add(visibleSeries[i]); } } } } }