public void Add(LayoutCellWrapper cell, int columnIndex, int rowIndex) { m_Rows_Size = Math.Max(rowIndex + 1, m_Rows_Size); m_Columns_Size = Math.Max(columnIndex + 1, m_Columns_Size); Dictionary <int, LayoutCellWrapper> columnDict = null; if (this.m_CellsCache.ContainsKey(rowIndex)) { columnDict = this.m_CellsCache[rowIndex]; } if (columnDict == null) { columnDict = new Dictionary <int, LayoutCellWrapper>(); this.m_CellsCache.Add(rowIndex, columnDict); } if (!columnDict.ContainsKey(columnIndex)) { columnDict.Add(columnIndex, cell); } else { columnDict[columnIndex] = cell; } }
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 LayoutCellWrapper this[ int columnIndex, int rowIndex] { get { LayoutCellWrapper res = null; Dictionary <int, LayoutCellWrapper> columnDict = null; if (this.m_CellsCache.ContainsKey(rowIndex)) { columnDict = this.m_CellsCache[rowIndex]; } if (columnDict != null) { if (columnDict.ContainsKey(columnIndex)) { res = columnDict[columnIndex]; } } return(res); } }
public void Add(LayoutCellWrapper cell, int columnIndex, int rowIndex) { m_Rows_Size = Math.Max(rowIndex + 1, m_Rows_Size); m_Columns_Size = Math.Max(columnIndex + 1, m_Columns_Size); Dictionary<int, LayoutCellWrapper> columnDict = null; if (this.m_CellsCache.ContainsKey(rowIndex)) { columnDict = this.m_CellsCache[rowIndex]; } if (columnDict == null) { columnDict = new Dictionary<int, LayoutCellWrapper>(); this.m_CellsCache.Add(rowIndex, columnDict); } if (!columnDict.ContainsKey(columnIndex)) { columnDict.Add(columnIndex, cell); } else { columnDict[columnIndex] = cell; } }