//creating all cells
        public void CreateCells(int rowsIn, int columnsIn, ICARuleFamily caRuleFamilyIn, ICAGridCellInitialization caGridCellInitializationIn)
        {
            //creating the empty model - with specific values.
            CreateCA2DModel(rowsIn, columnsIn, caRuleFamilyIn, caGridCellInitializationIn);

            for (int x = 0; x < Columns; x++)
            {
                for (int y = 0; y < Rows; y++)
                {
                    Cells.Add(new CellVM(CAGrid2DModel.GetCellModel(x, y), x * CellGridWidth, y * CellGridHeight));
                }
            }

            InitCAColors();
        }
        public CAGrid2DVM(int rowsIn, int columsIn)
        {
            //creating model for this viewmodel
            CreateCA2DModel(rowsIn, columsIn, null, null);

            InitCA();

            //adding all cells, the number is depending on column and row count
            for (int x = 0; x < Columns; x++)
            {
                for (int y = 0; y < Rows; y++)
                {
                    Cells.Add(new CellVM(CAGrid2DModel.GetCellModel(x, y), x * CellGridWidth, y * CellGridHeight));
                }
            }
        }