internal GridCell(int columnSpan, string key, string displayName, GridLayoutCellType type)
 {
     ColumnSpan = columnSpan;
     Key = key;
     DisplayName = displayName;
     Type = type;
 }
        public GridCell AddCell(int columnSpan, string key, string displayName, GridLayoutCellType type)
        {
            var totalSpan = _cells.Select(c => c.ColumnSpan).Sum() + columnSpan;
            if (totalSpan > _layout.ColumnSpan)
                throw new ArgumentException("Cannot add cell, as the combined row span would be larger than " + _layout.ColumnSpan);

            var cell = new GridCell(columnSpan, key, displayName, type);
            _cells.Add(cell);
            return cell;
        }