コード例 #1
0
ファイル: SnakeViewModel.cs プロジェクト: 0verdoes/WPF_Snake
        public SnakeViewModel(SnakeModel model)
        {
            _model = model;

            _model.GameOver   += Model_GameOver;
            _model.SnakeMoved += RefreshTable;

            Fields  = new ObservableCollection <ViewField>();
            NewGame = new DelegateCommand(OnNewGame);
            Control = new DelegateCommand(KeyHandler);

            LoadGameOpenCommand = new DelegateCommand(param =>
            {
                Games = new ObservableCollection <SaveEntry>(_model.List());
                OnLoadGameOpen();
            });
            LoadGameCloseCommand = new DelegateCommand(
                param => SelectedGame != null,
                param => {
                OnLoadGameClose(SelectedGame.Name);
            });
            SaveGameOpenCommand = new DelegateCommand(param =>
            {
                Games = new ObservableCollection <SaveEntry>(_model.List());
                OnSaveGameOpen();
            });
            SaveGameCloseCommand = new DelegateCommand(
                param => NewName.Length > 0,
                param => {
                OnSaveGameClose(NewName);
            });

            //MakeGameTable();
        }
コード例 #2
0
ファイル: App.xaml.cs プロジェクト: 0verdoes/WPF_Snake
 private async void SaveGameClose(object sender, string e)
 {
     if (e != null)
     {
         try
         {
             var games = _model.List();
             if (games.All(g => g.Name != e) ||
                 MessageBox.Show("Biztos, hogy felülírja a meglévő mentést?", "Snake",
                                 MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
             {
                 await _model.SaveGameState(e);
             }
         }
         catch (Exception err)
         {
             MessageBox.Show(err.Message, "Hiba!", MessageBoxButton.OK, MessageBoxImage.Error);
         }
     }
     _model.IsPaused = false;
     _savewindow.Close();
 }