I have a small demo WinForms app. One of the Forms is my Add New Person form. I used the Details View instead of the DataGridView
from my Data Sources. When I enter data and click the save button on the Navigator there are zero changes, However I put a MovePrevious
and a MoveNext
after my AddNew
in the form Load
, everything works as expected.
public partial class AddPersonForm : Form
{
private readonly DemoContext _context;
public AddPersonForm()
{
_context = new DemoContext();
InitializeComponent();
}
protected override void OnLoad(EventArgs e)
{
_context.People.Load();
personBindingSource.DataSource = _context.People.Local.ToBindingList();
personBindingSource.AddNew();
personBindingSource.MovePrevious();
personBindingSource.MoveNext();
base.OnLoad(e);
}
private void personBindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
int changes = _context.SaveChanges();
Debug.WriteLine("# of changes: " + changes);
}
}
Why do I need to toggle the BindingSource Position before it will recognize changes and save?