void ControlTreeDataLoader.LoadData() { FormState.ExecuteWithDataModificationsAndDefaultAction( dataModifications, () => { var table = new DynamicTable { IsStandard = false }; var controls = codeControls; if (HideIfEmpty && controls.Count == 0) { Visible = false; return; } var firstPassThroughRowLoop = true; for (var i = 0; i < controls.Count; i += NumberOfColumns) { // spacer row if (!firstPassThroughRowLoop) { var spacerRowCount = SpacerCellSetup.RowSpacerCellCreator().Count; for (var spacerRowIndex = 0; spacerRowIndex < spacerRowCount; spacerRowIndex += 1) { var firstPassThroughSpacerRowColumnLoop = true; var spacerRowCells = new List <EwfTableCell>(); for (var spacerRowColumnIndex = 0; spacerRowColumnIndex < NumberOfColumns; spacerRowColumnIndex += 1) { if (!firstPassThroughSpacerRowColumnLoop) { spacerRowCells.AddRange(SpacerCellSetup.RowAndColumnSpacerCellCreator()[spacerRowIndex]); } spacerRowCells.Add(SpacerCellSetup.RowSpacerCellCreator()[spacerRowIndex]); firstPassThroughSpacerRowColumnLoop = false; } table.AddRow(spacerRowCells.ToArray()); } } // content row var firstPassThroughColumnLoop = true; var cells = new List <EwfTableCell>(); for (var columnIndex = 0; columnIndex < NumberOfColumns; columnIndex += 1) { // spacer cells if (!firstPassThroughColumnLoop) { cells.AddRange(SpacerCellSetup.ColumnSpacerCellCreator()); } // content cell if (firstPassThroughRowLoop && CaptionControl != null) { cells.Add(CaptionControl); i -= NumberOfColumns; } else { var controlIndex = i + columnIndex; if (controlIndex < controls.Count) { cells.Add(controls[controlIndex]); } else { cells.Add(EmptyCellCreator()); } } firstPassThroughColumnLoop = false; } table.AddRow(cells.ToArray()); firstPassThroughRowLoop = false; } Controls.Add(table); }); }