protected virtual void MeasureGroupElements(SizeF availableSize, ref SizeF sizeNeeded) { int length = this.groupElements.Length; for (int index = 0; index < length; ++index) { GroupElement groupElement = this.groupElements[index]; groupElement.Measure(availableSize); SizeF desiredSize = groupElement.DesiredSize; sizeNeeded.Width += desiredSize.Width; sizeNeeded.Height += desiredSize.Height; } sizeNeeded.Height += (float)((length - 1) * this.ItemsDistance.Height); sizeNeeded.Width += (float)((length - 1) * this.ItemsDistance.Width); }
private void UpdateGroups() { List <GroupElement> groupElementList = new List <GroupElement>(); List <GroupLinkElement> groupLinkElementList = new List <GroupLinkElement>(); for (int index = 0; index < this.template.DataView.GroupDescriptors.Count && this.template.ColumnCount > 0; ++index) { GroupElement groupElement = new GroupElement(this, this.template.DataView.GroupDescriptors[index]); groupElement.UpdateGroupingFields(); if (groupElement.GroupingFieldElements.Count != 0) { groupElementList.Add(groupElement); this.Children.Add((RadElement)groupElement); if (index > 0) { GroupLinkElement groupLinkElement = new GroupLinkElement(this); groupLinkElementList.Add(groupLinkElement); this.Children.Add((RadElement)groupLinkElement); } } } this.groupElements = groupElementList.ToArray(); this.groupLinks = groupLinkElementList.ToArray(); }