Beispiel #1
0
        public override void OnRemovingRange(RangeRegionCancelEventArgs e)
        {
            base.OnRemovingRange(e);

            RangeRegionChangingEventArgs regionChanging = new RangeRegionChangingEventArgs(e.RangeRegion, new SourceGrid.RangeRegion(), new SourceGrid.RangeRegion());
            PositionCollection           exploredPos    = new PositionCollection();

            do
            {
                regionChanging.RegionToExclude.Clear();
                regionChanging.RegionToInclude.Clear();

                PositionCollection positions = e.RangeRegion.GetCellsPositions();
                for (int i = 0; i < positions.Count; i++)
                {
                    if (exploredPos.Contains(positions[i]) == false)
                    {
                        CellContext cellContext = new CellContext(Grid, positions[i]);
                        Grid.Controller.OnSelectionRemoving(cellContext, regionChanging);
                        exploredPos.Add(positions[i]);
                    }
                }

                regionChanging.CurrentRegion.Add(regionChanging.RegionToInclude);
                regionChanging.CurrentRegion.Remove(regionChanging.RegionToExclude);
            } while (!regionChanging.RegionToExclude.IsEmpty() || !regionChanging.RegionToInclude.IsEmpty());
        }