public SoundQuestionWindowViewModel(IEventAggregator eventAggregator, StandingsService standingsService, InputService inputService)
     : base(eventAggregator, standingsService, inputService)
 {
     _soundToken = ShowEvent.Subscribe(PauseStart);
     _closeEvent = eventAggregator.GetEvent<CloseEvent>();
     _stopToken = _closeEvent.Subscribe((o) => Dispose());
 }
        public SoundQuestionWindowView(SoundQuestionWindowViewModel viewModel)
        {
            InitializeComponent();
            this.DataContext = viewModel;

            closeEvent = viewModel.EventAggregator.GetEvent<CloseEvent>();
            token = closeEvent.Subscribe((o) =>
                                                                                   {
                                                                                       System.Diagnostics.Trace.WriteLine("Close stop event");
                                                                                       viewModel.Stop();
                                                                                       viewModel.Dispose();

                                                                                       this.Close();
                                                                                       this.Close();
                                                                                       this.Close();
                                                                                   }, ThreadOption.UIThread, true);
            System.Diagnostics.Trace.WriteLine(token);

            this.PreviewKeyDown += ((QuestionWindowViewModel)DataContext).InputService.ButtonDownEventHandler;
            this.PreviewKeyUp += ((QuestionWindowViewModel)DataContext).InputService.ButtonUpEventHandler;
        }
        public VideoQuestionWindowView(VideoQuestionWindowViewModel viewModel)
        {
            InitializeComponent();
            this.DataContext = viewModel;

            closeEvent = viewModel.EventAggregator.GetEvent<CloseEvent>();
            token = closeEvent.Subscribe((o) =>
                                                                                   {
                                                                                       viewModel.Stop();
                                                                                       viewModel.Dispose();
                                                                                       this.Close();
                                                                                       this.Close();
                                                                                       this.Close();
                                                                                   }, ThreadOption.UIThread, true);

            viewModel.PlayRequested += (sender, e) => UIHelperService.ExecuteUIAction(() => this.Video.Play());
            viewModel.PauseRequested += (sender, e) => UIHelperService.ExecuteUIAction(() => this.Video.Pause());
            viewModel.StopRequested += (sender, e) => UIHelperService.ExecuteUIAction(() => this.Video.Stop());

            System.Diagnostics.Trace.WriteLine(token);

            this.PreviewKeyDown += ((QuestionWindowViewModel)DataContext).InputService.ButtonDownEventHandler;
            this.PreviewKeyUp += ((QuestionWindowViewModel)DataContext).InputService.ButtonUpEventHandler;
        }