Example #1
0
        /// <summary>
        /// Add new row of cell view models that corresponds to
        /// rowNumber row in data model.
        /// </summary>
        /// <param name="rowNumber">Number of row in data model.</param>
        private void CreateCellViewModelRow(int rowNumber)
        {
            _logger.Log($"Create {rowNumber} row of cells");
            var row = new ObservableCollection <ICellViewModel>();

            for (var x = 0; x < GridWidth; x++)
            {
                var cellViewModel = new CellViewModel(CellSet.GetCell(x, rowNumber));
                row.Add(cellViewModel);
            }

            _logger.Log($"{rowNumber} row of cells is ready for rendering");
            Cells.Add(row);
        }
Example #2
0
        /// <summary>
        /// Create 2-dimensional array of cells.
        /// </summary>
        /// <returns></returns>
        private ObservableCollection <ObservableCollection <ICellViewModel> > CreateCells()
        {
            var cells = new ObservableCollection <ObservableCollection <ICellViewModel> >();

            for (var posRow = 0; posRow < GridHeight; posRow++)
            {
                var row = new ObservableCollection <ICellViewModel>();
                for (var posCol = 0; posCol < GridWidth; posCol++)
                {
                    var cellViewModel = new CellViewModel(Cell.Empty);
                    row.Add(cellViewModel);
                }
                cells.Add(row);
            }
            return(cells);
        }
Example #3
0
        /// <summary>
        /// Add or remove cell view models to the row.
        /// </summary>
        /// <param name="rowNumber">Number of row in data model.</param>
        private void UpdateCellViewModelRow(int rowNumber)
        {
            var row = Cells[rowNumber];

            // delete extra cells
            while (row.Count > GridWidth)
            {
                row.RemoveAt(GridWidth);
            }
            for (var pos = 0; pos < GridWidth; pos++)
            {
                // create new ViewModel or update existent one
                var cell = CellSet.GetCell(pos, rowNumber);
                if (pos < row.Count)
                {
                    row[pos].Cell = cell;
                }
                else
                {
                    var cellViewModel = new CellViewModel(cell);
                    row.Add(cellViewModel);
                }
            }
        }