private void ApplyProperties(CollectionProperty property, GridPanel panelToAdd) { panelToAdd.Clear(); var itemsCount = property.Items.Count; var panelRowCount = itemsCount / ItemsInRow(); var additionalItems = itemsCount - panelRowCount * ItemsInRow(); if (additionalItems > 0) { panelRowCount++; } _fullRowCount += panelRowCount; panelToAdd.SetGrid(panelRowCount, ItemsInRow()); for (var i = 0; i < property.Items.Count; i++) { var rowIndex = i / ItemsInRow(); var colIndex = i % ItemsInRow(); //простите, люди, очень хочется спать var control = (PropertiesControl)panelToAdd.Panels[rowIndex].GetCell(colIndex); var stubCriteria = new CriteriaStubLayout(); stubCriteria.Dock = DockStyle.Fill; stubCriteria.Caption = property.Items[i].Text; control.Control.Controls[0].Controls.Add(stubCriteria); } panelToAdd.Height = panelRowCount * 50; panelToAdd.AlignControls(); }