private void AddRegularHeaderCells(SpannableHeader[,] headerCells)
        {
            int lastHeaderRowIndex = headerCells.GetLength(0) - 1;

            for (int i = 0; i < this.CellsProviders.Length; i++)
            {
                headerCells[lastHeaderRowIndex, i] = new SpannableHeader(this.CellsProviders[i].CreateHeaderCell());
            }
        }
        private SpannableHeader[,] BuildHeaderCells()
        {
            int complexHeaderRowsCount =
                this.ComplexHeaders.Any() ?
                this.ComplexHeaders.Max(h => h.RowIndex) + 1 :
                0;

            SpannableHeader[,] headerCells = new SpannableHeader[complexHeaderRowsCount + 1, this.CellsProviders.Length];

            this.AddComplexHeaderCells(headerCells);
            this.AddRegularHeaderCells(headerCells);

            return(headerCells);
        }