void OnTableViewSelectionChanged(object sender, DevExpress.Xpf.Grid.GridSelectionChangedEventArgs e) { var view = sender as TableView; var grid = view.Grid; var selectedCells = view.GetSelectedCells(); var TL_RowIndex = int.MaxValue; var TL_ColumnIndex = int.MaxValue; var RB_RowIndex = 0; var RB_ColumnIndex = 0; foreach (var cellInfo in selectedCells) { var currentRowIndex = grid.GetRowVisibleIndexByHandle(cellInfo.RowHandle); var currentColumnIndex = cellInfo.Column.VisibleIndex; if (TL_RowIndex > currentRowIndex) { TL_RowIndex = currentRowIndex; } if (TL_ColumnIndex > currentColumnIndex) { TL_ColumnIndex = currentColumnIndex; } if (RB_RowIndex < currentRowIndex) { RB_RowIndex = currentRowIndex; } if (RB_ColumnIndex < currentColumnIndex) { RB_ColumnIndex = currentColumnIndex; } } var TL_CellPresenter = view.GetCellElementByRowHandleAndColumn( grid.GetRowHandleByVisibleIndex(TL_RowIndex), view.VisibleColumns.First((column) => column.VisibleIndex == TL_ColumnIndex)); var RB_CellPresenter = view.GetCellElementByRowHandleAndColumn( grid.GetRowHandleByVisibleIndex(RB_RowIndex), view.VisibleColumns.First((column) => column.VisibleIndex == RB_ColumnIndex)); Point TL_Point = TL_CellPresenter.TranslatePoint(new Point(0d, 0d), grid); Point RB_Point = RB_CellPresenter.TranslatePoint(new Point(0d, 0d), grid); RB_Point.Offset(RB_CellPresenter.ActualWidth, RB_CellPresenter.ActualHeight); if (rectangleAdorner != null) { gridAdornerLayer.Remove(rectangleAdorner); } rectangleAdorner = new RectangleAdorner(grid); rectangleAdorner.RenderRect = new Rect(TL_Point, RB_Point); gridAdornerLayer.Add(rectangleAdorner); }
protected virtual void OnSelectionChange(object sender, DevExpress.Xpf.Grid.GridSelectionChangedEventArgs e) { customizeContextMenuForSelection(); }
void TableView_SelectionChanged(object sender, DevExpress.Xpf.Grid.GridSelectionChangedEventArgs e) { grid.UpdateTotalSummary(); }