/// <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; } }
public WizardNavigationEventArgs(WizardNavigationType navigationType, WizardStepBaseViewModel currentStep, WizardStepBaseViewModel newStep) { NavigationType = navigationType; CurrentStep = currentStep; NewStep = newStep; }