예제 #1
0
        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
        }
예제 #2
0
        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();
        }