/// <summary> /// Raises the CellAdded event /// </summary> /// <param name="e">A RowEventArgs that contains the event data</param> protected internal virtual void OnCellAdded(RowEventArgs e) { e.SetRowIndex(this.Index); e.Cell.InternalRow = this; e.Cell.InternalIndex = e.CellFromIndex; e.Cell.SetSelected(false); this.UpdateCellIndicies(e.CellFromIndex); if (e.Cell.WordWrap) { this.WordWrapCellIndex = e.CellFromIndex; this.HasWordWrapCell = true; } if (this.CanRaiseEvents) { if (this.TableModel != null) { this.TableModel.OnCellAdded(e); } if (CellAdded != null) { CellAdded(this, e); } } }
/// <summary> /// Inserts a Row into the collection at the specified index /// </summary> /// <param name="index">The zero-based index at which the Row /// should be inserted</param> /// <param name="row">The Row to insert</param> public void Insert(int index, Row row) { if (row == null) { return; } if (index < 0) { throw new IndexOutOfRangeException(); } if (index >= this.Count) { this.Add(row); } else { base.List.Insert(index, row); if (owner != null) { this.owner.OnRowAdded(new TableModelEventArgs(this.owner, row, index, index)); } else if (rowowner != null) { RowEventArgs args = new RowEventArgs(row, RowEventType.SubRowAdded, rowowner); args.SetRowIndex(index); this.OnRowAdded(args); } } }
/// <summary> /// Raises the CellRemoved event /// </summary> /// <param name="e">A RowEventArgs that contains the event data</param> protected internal virtual void OnCellRemoved(RowEventArgs e) { e.SetRowIndex(this.Index); if (e.Cell != null) { if (e.Cell.Row == this) { e.Cell.InternalRow = null; e.Cell.InternalIndex = -1; if (e.Cell.Selected) { e.Cell.SetSelected(false); this.InternalSelectedCellCount--; if (this.SelectedCellCount == 0 && this.TableModel != null) { this.TableModel.Selections.RemoveRow(this); } } } } else { if (e.CellFromIndex == -1 && e.CellToIndex == -1) { if (this.SelectedCellCount != 0 && this.TableModel != null) { this.InternalSelectedCellCount = 0; this.TableModel.Selections.RemoveRow(this); } } } this.UpdateCellIndicies(e.CellFromIndex); if (this.CanRaiseEvents) { if (this.TableModel != null) { this.TableModel.OnCellRemoved(e); } if (CellRemoved != null) { CellRemoved(this, e); } } }
/// <summary> /// Raises the PropertyChanged event /// </summary> /// <param name="e">A RowEventArgs that contains the event data</param> protected virtual void OnPropertyChanged(RowEventArgs e) { e.SetRowIndex(this.Index); if (this.CanRaiseEvents) { if (this.TableModel != null) { this.TableModel.OnRowPropertyChanged(e); } if (PropertyChanged != null) { PropertyChanged(this, e); } } }