private void SetSteps(IEnumerable <CreateTileStep> steps)
        {
            var typeStep = new CreateTileStep()
            {
                Page = new SelectTypePage()
                {
                    DataContext = this
                },
                PageHeader = "Select tile type",
                Validate   = (tile) => tile != null && tile.Type != 0
            };

            _createSteps.Clear();
            _createSteps.Add(typeStep);
            _createSteps.AddRange(steps);
            LeftButtonCommand = CancelCommand;
            LeftButtonContent = "Cancel";

            if (_createSteps.Count == 1)
            {
                RightButtonCommand = FinishCommand;
                RightButtonContent = "Finish";
            }
            else
            {
                RightButtonCommand = NextPageCommand;
                RightButtonContent = "Next";
            }
            NextPageCommand.OnCanExecuteChanged();
            FinishCommand.OnCanExecuteChanged();
        }
 private void PreviousPage()
 {
     _currentStepIndex--;
     if (_currentStepIndex == _createSteps.Count - 1)
     {
         RightButtonCommand = FinishCommand;
         RightButtonContent = "Finish";
     }
     else
     {
         RightButtonCommand = NextPageCommand;
         RightButtonContent = "Next";
     }
     if (_currentStepIndex == 0)
     {
         LeftButtonCommand = CancelCommand;
         LeftButtonContent = "Cancel";
     }
     else
     {
         LeftButtonCommand = PreviousPageCommand;
         LeftButtonContent = "Back";
     }
     OnPropertyChanged("CurrentStep");
     NextPageCommand.OnCanExecuteChanged();
     FinishCommand.OnCanExecuteChanged();
 }
 private void TilePropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
 {
     NextPageCommand?.OnCanExecuteChanged();
     FinishCommand?.OnCanExecuteChanged();
 }