/// <summary> /// Event delegate method fired when the <see cref="MultiHeaderCell.ColumnSpan"/> value changes. /// </summary> /// <param name="sender">Sender object.</param> /// <param name="args">Event arguments.</param> private void HeaderCellColumnSpanChangedAction(object sender, HeaderCellColumnSpanChangedArgs args) { var headerCell = args.HeaderCell; if (headerCell == null) { return; } if (headerCell.ColumnIndex + args.NewColumnSpan > _headerCells.Count) { // If column span was incorrectly set to span more columns than the ones in the collection, reset it to the largest possible span. headerCell.ColumnSpan = _headerCells.Count - headerCell.ColumnIndex; return; } ResetHeaderCellsInSpan(headerCell.ColumnIndex, args.OldColumnSpan, false); ResetHeaderCellsInSpan(headerCell.ColumnIndex, args.NewColumnSpan, true); // Invalidate Height so it gets recalculated _height = 0; // Fire corresponding event if (HeaderCellColumnSpanChanged != null) { HeaderCellColumnSpanChanged(this, args); } }
/// <summary> /// Event delegate method fired when the <see cref="MultiHeaderCell.ColumnSpan"/> of a cell in one of the <see cref="MultiHeaderRow"/> objects in this grid changes value. /// </summary> /// <param name="sender">A <see cref="MultiHeaderRow"/> in this grid.</param> /// <param name="args">The <see cref="HeaderCellColumnSpanChangedArgs"/> related to the event.</param> private void HeaderCellColumnSpanChanged(object sender, HeaderCellColumnSpanChangedArgs args) { var headerRow = sender as MultiHeaderRow; if (headerRow == null) { return; } AdjustColumnsWidth(args.HeaderCell); }