/// <summary>
        /// Called during Back or Next navigation
        /// </summary>
        private void Navigate(WizardNavigationType navigationType)
        {
            WizardStepBaseViewModel newStep = null;

            if (navigationType == WizardNavigationType.Back)
            {
                newStep = Steps[CurrentStepIndex - 1];
            }
            else if (navigationType == WizardNavigationType.Next)
            {
                newStep = Steps[CurrentStepIndex + 1];
            }

            _currentNavigationArgs = new WizardNavigationEventArgs(navigationType, CurrentStep, newStep);

            //Gives derived Wizard ViewModel a chance to pause or cancel navigation and also coordinate data interaction
            //between steps if necessary:
            OnNavigating(_currentNavigationArgs);

            if (_currentNavigationArgs.NavigationAction == WizardNavigationAction.Continue)
            {
                ContinueNavigation();
            }
            else if (_currentNavigationArgs.NavigationAction == WizardNavigationAction.Cancel)
            {
                CancelNavigation();
            }
        }
 public void ContinueNavigation()
 {
     if (_currentNavigationArgs != null)
     {
         CurrentStep            = _currentStep = _currentNavigationArgs.NewStep;
         _currentNavigationArgs = null;
     }
 }
Beispiel #3
0
 public WizardNavigationEventArgs(WizardNavigationType navigationType, WizardStepBaseViewModel currentStep, WizardStepBaseViewModel newStep)
 {
     NavigationType = navigationType;
     CurrentStep    = currentStep;
     NewStep        = newStep;
 }