Example #1
0
        public void MoveRegionOrder(int regionToMove, OrderMoveDirection direction)
        {
            int addition = (direction == OrderMoveDirection.Up) ? (-1) : 1;
            int toSwapWithIdx = regionToMove + addition;
            CalibratedRegionVM toSwapWith = null, target = null;

            foreach (CalibratedRegionVM vm in imageRegions.SelectMany(im => im))
            {
                if (vm.Order == regionToMove)
                {
                    target = vm;
                }
                else if (vm.Order == toSwapWithIdx)
                {
                    toSwapWith = vm;
                }
            }

            target.Order     = toSwapWithIdx;
            toSwapWith.Order = regionToMove;
            System.Diagnostics.Debug.WriteLine("swapped {0} and {1}", toSwapWithIdx, regionToMove);
            RecalculateRegionProperties();
            target.RaiseCanMoveChanged();
            toSwapWith.RaiseCanMoveChanged();
        }