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); }
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); } }