我一定是做错了,或者这不会那么令人困惑。我正在创建一个Winforms应用程序,子记录在网格上以新的形式打开。当我保存更改并返回到父表单时,我希望看到总计中的更改。这些是POCO对象。这样做的正确方法是什么?我需要像刷新一样的东西,所以我可以看到其他环境中的变化。
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
loadData();
}
private void loadData()
{
if (_context != null)
_context.Dispose();
_context = new ModelContainer();
_context.Customers.Where(c => c.BranchId == this.branchId || this.branchId == 0).Load();
this.customerBindingSource.DataSource = _context.Customers.Local.ToBindingList();
_context.Branches.Where(b => b.BranchId == this.branchId || this.branchId == 0).Load();
this.branchBindingSource.DataSource = _context.Branches.Local.ToBindingList();
customerBindingSource.ResetBindings(true);
customerBindingNavigatorSaveItem.Enabled = false;
}
private void customerDataGridView_KeyDown(object sender, KeyEventArgs e)
{
int customerId = 0;
...
Locations locations = new Locations(customerId);
locations.ShowDialog();
...
loadData();
}
一切正常。在我显示我的子表单后,我必须再次调用loadData()。是不是有正确/更好的方式?