예제 #1
0
        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);
        }
예제 #2
0
 protected virtual void OnSelectionChange(object sender, DevExpress.Xpf.Grid.GridSelectionChangedEventArgs e)
 {
     customizeContextMenuForSelection();
 }
 void TableView_SelectionChanged(object sender, DevExpress.Xpf.Grid.GridSelectionChangedEventArgs e)
 {
     grid.UpdateTotalSummary();
 }