public TwitcherViewModel(TwitcherModel model) { _model = model; _model.PropertyChanged += TwitcherModel_PropertyChanged; #region DelegateCommands LoadChannelsCommand = new DelegateCommand(async param => { OnLoadStarted(); try { await _model.LoadFollowingListForUsername(); } catch { } OnLoadFinished(); }); RunLivestreamerCommand = new DelegateCommand(param => { try { //_model.StartLivestreamerWithChannelName(); _model.Start(); } catch { } }); ExitCommand = new DelegateCommand(param => { OnExitCommand(); }); OpenYoutubeWindowCommand = new DelegateCommand(param => { if (YoutubeWindowCommandInvoked != null) { YoutubeWindowCommandInvoked(this, EventArgs.Empty); } }); TextBox_KeyDown = new DelegateCommand(param => { ((Control)param).MoveFocus(new TraversalRequest(FocusNavigationDirection.Next)); LoadChannelsCommand.Execute(param); }); #endregion DelegateCommands }
private void App_Startup(object sender, EventArgs e) { _model = new TwitcherModel(); _viewModel = new TwitcherViewModel(_model); _viewModel.ExitApplication += delegate(object twitcherViewModelSender, EventArgs twitcherViewModelEventArgs) { Shutdown(); }; _viewModel.YoutubeWindowCommandInvoked += delegate(object twitcherViewModelSender, EventArgs twitcherViewModelEventArgs) { _view.Hide(); youtubeModel = new YoutubeModel(); youtubeViewModel = new YoutubeViewModel(youtubeModel); youtubeWindow = new YoutubeWindow(); youtubeWindow.DataContext = youtubeViewModel; youtubeViewModel.TwitcherCommandInvoked += delegate(object youtubeViewModelSender, EventArgs youtubeViewModelEventArgs) { youtubeWindow.Close(); _view.Show(); }; youtubeViewModel.Model_DownloadFinished += delegate(object youtubeViewModelSender, EventArgs youtubeViewModelEventArgs) { MessageBox.Show("Download finished!", "Youtube video download", MessageBoxButton.OK); }; youtubeWindow.Show(); }; _view = new MainWindow(); _view.DataContext = _viewModel; _view.Show(); }