private void ColumnHeader_DoubleClickEvent(object sender, MouseButtonEventArgs e) { var header = (System.Windows.Controls.Primitives.DataGridColumnHeader)sender; var tcID = (int)header.Content; var firstOccurence = RequirementsDataGrid.Items.Cast <RequirementSingleView>() .TakeWhile(x => x.TCIDsValue.Contains(tcID) != true) .Count(); var lastOccurence = RequirementsDataGrid.Items.Cast <RequirementSingleView>().Count() - RequirementsDataGrid.Items.Cast <RequirementSingleView>() .Reverse() .TakeWhile(x => x.TCIDsValue.Contains(tcID) != true) .Count(); RequirementsDataGrid.ScrollIntoView(RequirementsDataGrid.Items[lastOccurence]); RequirementsDataGrid.ScrollIntoView(RequirementsDataGrid.Items[firstOccurence]); }
private void Helper_LeftClickEvent(object sender, MouseButtonEventArgs e) { var gridCell = (DataGridCell)sender; var tc = (int)gridCell.Column.Header; var senderDatagrid = VisualTreeHelper.GetParent(gridCell); while (senderDatagrid != null && senderDatagrid.GetType() != typeof(DataGrid)) { senderDatagrid = VisualTreeHelper.GetParent(senderDatagrid); } var isGoingDown = ((DataGrid)senderDatagrid).Name == nameof(ReqHelperBottom); var selectedRows = RequirementsDataGrid.SelectedItems.Count; if (selectedRows >= 1) { var firstSelected = (RequirementSingleView)RequirementsDataGrid.SelectedItems[0]; RequirementsDataGrid.SelectedItems.Clear(); if (firstSelected.TCIDsValue.Contains(tc)) { RequirementsDataGrid.SelectedItems.Add(firstSelected); } else { RequirementsDataGrid.SelectedItems.Add(RequirementsDataGrid.Items.Cast <RequirementSingleView>().First(x => x.TCIDsValue.Contains(tc) && x.IsVisible)); RequirementsDataGrid.ScrollIntoView(firstSelected); return; } RequirementsDataGrid.ScrollIntoView(firstSelected); if (selectedRows > 1) { return; } RequirementsDataGrid.SelectedItems.Clear(); var reqs = RequirementsDataGrid.Items.Cast <RequirementSingleView>().AsEnumerable(); if (isGoingDown == false) { reqs = reqs.Reverse(); } RequirementsDataGrid.SelectedItems .Add(reqs .SkipWhile(x => x != firstSelected) .Skip(1) .FirstOrDefault(x => x.TCIDsValue.Contains(tc) && x.IsVisible)); if (RequirementsDataGrid.SelectedItem == null) { RequirementsDataGrid.SelectedItems.Add(firstSelected); } RequirementsDataGrid.ScrollIntoView(RequirementsDataGrid.SelectedItem); } else { RequirementsDataGrid.SelectedItems.Add(RequirementsDataGrid.Items.Cast <RequirementSingleView>().First(x => x.TCIDsValue.Contains(tc) && x.IsVisible)); RequirementsDataGrid.ScrollIntoView((RequirementSingleView)RequirementsDataGrid.SelectedItems[0]); } }