Exemplo n.º 1
0
        public ReplayWindow(Latrunculi.Controller.ReplayController.T controller, ReplayWindowViewModel viewModel)
        {
            DataContext = viewModel;
            Controller  = controller;

            InitializeComponent();

            ViewModel.Model.PositionChanged += Model_PositionChanged;

            Dispatcher.BeginInvoke(new Action(() =>
            {
                ModelException.TryThrow <ReplayController.T>(Controller.tryGoToPosition(0));
            }), System.Windows.Threading.DispatcherPriority.Background);
        }
Exemplo n.º 2
0
        private void Replay_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            e.Handled = true;
            try
            {
                if (ViewModel.IsGameFinished)
                {
                    ReplayModel.T         replayModel = ModelException.TryThrow <ReplayModel.T>(ReplayModel.tryCreate(ViewModel.Model.Board, ViewModel.Model.PlayerSettings));
                    ReplayController.T    controller  = ModelException.TryThrow <ReplayController.T>(ReplayController.tryCreate(replayModel));
                    ReplayWindowViewModel vm          = new ReplayWindowViewModel(replayModel);

                    ReplayWindow win = new ReplayWindow(controller, vm);
                    win.Owner = this;
                    win.ShowDialog();
                }
            }
            catch (Exception exc)
            {
                MessageBox.Show(this, "Okno přehrávače nelze otevřít." + Environment.NewLine + ViewModelCommon.ConvertExceptionToShortString(exc), "Chyba", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }