public MemberLayoutItem(PivotMemberItem pivotMember) { if (pivotMember == null) { throw new ArgumentNullException("pivotMember"); } PivotMember = pivotMember; }
void AddToColumnsLayout(PivotMemberItem member) { if (member != null) { // Для данного элемента пытаемся получить по координатам LayoutCellWrapper LayoutCellWrapper itemWrapper = ColumnsLayout[member.ColumnIndex, member.RowIndex]; if (itemWrapper == null) { itemWrapper = new LayoutCellWrapper(); ColumnsLayout.Add(itemWrapper, member.ColumnIndex, member.RowIndex); } // Создаем описатель для данного элемента и добавляем его в коллекцию объектов ячейки сетки MemberLayoutItem item = new MemberLayoutItem(member); itemWrapper.Items.Add(item); item.RowSpan = member.RowSpan; item.ColumnSpan = member.ColumnSpan; // Если элемент в ширину больше чем 1, то добавляем фиктивные элементы на сетку for (int i = 1; i < member.ColumnSpan; i++) { LayoutCellWrapper ext_itemWrapper = ColumnsLayout[member.ColumnIndex + i, member.RowIndex]; if (ext_itemWrapper == null) { ext_itemWrapper = new LayoutCellWrapper(); ColumnsLayout.Add(ext_itemWrapper, member.ColumnIndex + i, member.RowIndex); } // Создаем описатель для фиктивного элемента MemberLayoutItem ext_item = new MemberLayoutItem(member); ext_item.IsExtension = true; ext_itemWrapper.Items.Add(ext_item); ext_item.ColumnSpan = member.ColumnSpan - i; ext_item.RowSpan = member.RowSpan; } foreach (PivotMemberItem dd_item in member.DrillDownChildren) { AddToColumnsLayout(dd_item); } foreach (PivotMemberItem child_item in member.Children) { AddToColumnsLayout(child_item); } } }
public MemberLayoutItem(PivotMemberItem pivotMember) { PivotMember = pivotMember; }