public WhackAMoleViewModel(WhackAMoleModel model) { // játék csatlakoztatása _model = model; _model.GameAdvanced += new EventHandler <WhackAMoleEventArgs>(Model_GameAdvanced); _model.GameOver += new EventHandler <WhackAMoleEventArgs>(Model_GameOver); _model.GameCreated += new EventHandler <WhackAMoleEventArgs>(Model_GameCreated); // parancsok kezelése NewGameCommand = new DelegateCommand(param => OnNewGame()); // játéktábla létrehozása Fields = new ObservableCollection <WhackAMoleField>(); for (Int32 i = 0; i < _model.Table.Size; i++) // inicializáljuk a mezőket { for (Int32 j = 0; j < _model.Table.Size; j++) { Fields.Add(new WhackAMoleField { Text = String.Empty, X = i, Y = j, Number = i * _model.Table.Size + j, // a gomb sorszáma, amelyet felhasználunk az azonosításhoz StepCommand = new DelegateCommand(param => StepGame(Convert.ToInt32(param))) // ha egy mezőre léptek, akkor jelezzük a léptetést, változtatjuk a lépésszámot }); } } RefreshTable(); }
private void App_Startup(object sender, StartupEventArgs e) { // modell létrehozása _model = new WhackAMoleModel(); _model.GameOver += new EventHandler <WhackAMoleEventArgs>(Model_GameOver); _model.NewGame(); // nézemodell létrehozása _viewModel = new WhackAMoleViewModel(_model); _viewModel.NewGame += new EventHandler(ViewModel_NewGame); // nézet létrehozása _view = new MainWindow(); _view.DataContext = _viewModel; //_view.Closing += new System.ComponentModel.CancelEventHandler(View_Closing); // eseménykezelés a bezáráshoz _view.Show(); // időzítő létrehozása _timer = new DispatcherTimer(); _timer.Interval = TimeSpan.FromSeconds(1); _timer.Tick += new EventHandler(Timer_Tick); _timer.Start(); }