コード例 #1
0
ファイル: DynamicGridViewModel.cs プロジェクト: zenismic/Blog
        /// <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 <TCellViewModel>();

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

            Logger.Log($"{rowNumber} row of cells is ready for rendering");
            Cells.Add(row);
        }
コード例 #2
0
ファイル: DynamicGridViewModel.cs プロジェクト: zenismic/Blog
        /// <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 = CreateCellViewModel(cell);
                    row.Add(cellViewModel);
                }
            }
        }