示例#1
0
        public ViewModel(Model.Model model)
        {
            this._model = model;
            //this._playIcon = "";
            _model.CellChanged       += new EventHandler <CellChangedEventArgs>(Model_CellChanged);
            _model.SizeChanged       += new EventHandler(Model_SizeChanged);
            _model.GenerationChanged += new EventHandler(Model_GenerationChanged);
            _model.LoadComplete      += new EventHandler(Model_LoadComplete);

            LoadConfigurationCommand = new DelegateCommand(x => OnLoadConfiguration());
            StepCommand = new DelegateCommand(x => OnStep());
            PlayCommand = new DelegateCommand(x => {
                OnPlay();
            });
            //PauseCommand = new DelegateCommand(x => OnPause());
            DeleteCellCommand = new DelegateCommand(x =>
            {
                CellField field = (CellField)x;
                _model.ChangeCell((int)((field.Row + 0.001) / CellSizeY), (int)((field.Column + 0.001) / CellSizeX));
            });
            CanvasClickCommand = new DelegateCommand(x => {
                OnCanvasClick();
            });
            NewPatternCommand          = new DelegateCommand(x => OnNewPattern());
            CreateEmptyPatternCommand  = new DelegateCommand(x => OnCreateEmptyPattern());
            CreateRandomPatternCommand = new DelegateCommand(x => OnCreateRandomPattern());

            Cells = new ObservableCollection <CellField>();
        }
示例#2
0
        private void ViewModel_CanvasClicked(Object sender, EventArgs e)
        {
            Point p = Mouse.GetPosition(Mouse.DirectlyOver);
            int   y = (int)(p.X / _viewModel.CellSizeY);
            int   x = (int)(p.Y / _viewModel.CellSizeX);

            _model.ChangeCell(x, y);
            //Mouse.LeftButton == MouseButtonState.Pressed
        }