public void AddColumn(string columnName) { if (!Visible.Contains(columnName)) { Visible.Add(columnName); ColumnAdded?.Invoke(this, columnName); } }
/// <summary> /// Adds a column to this outline, with optional data. /// Generally, row data will be provided when we are undoing an operation that deleted a column, and we /// want to restore all of the old data before we notify listeners about the restored column. /// </summary> /// <param name="column"></param> /// <param name="rowValues"></param> public void AddColumn(Column column, IDictionary <Row, object> rowValues = null) { if (RootRow.RowValues.ContainsKey(column)) { throw new InvalidOperationException("Column already added to outline."); } foreach (var row in EachRow.Concat(new[] { RootRow })) { row.RowValues.Add(column, column.DefaultValue); if (rowValues != null && rowValues.TryGetValue(row, out object value)) { row.RowValues[column] = value; } } ColumnAdded?.Invoke(this, new ColumnAddedEventArgs(column)); }
public void InsertColumn(int index, ChatColumn column) { columns.Insert(index, column); ColumnAdded?.Invoke(this, new ValueEventArgs <ChatColumn>(column)); }