I am not sure if this is what you want, but you can handle the RowEnter event and if you are entering the AddNewRow, go ahead and add a new row yourself.
private void gridDataBoundGrid1_RowEnter(object sender, GridRowEventArgs e)
{
GridCurrentCell cc = this.gridDataBoundGrid1.CurrentCell;
if(e.RowIndex == this.gridDataBoundGrid1.Model.RowCount)
{
DataTable dt = this.gridDataBoundGrid1.DataSource as DataTable;
dt.Rows.Add(dt.NewRow());
}
}
I would not exactly say those two properties are opposite. DefaultCurrentRecordItemChangedBehavior controls what happens if you are actively editing a grid cell, and something outside the grid changes the IBindingList datasource. DirectSaveCellInfo = true raises an IBindingList ItemChanged event each time you change cells even if you are moving in the same row. The default behavior is to only rasie the event when the position in the data list changes.