EF6 Winforms BindingSource刷新

时间:2014-01-13 21:44:13

标签: c# entity-framework datagridview bindingsource

我一定是做错了,或者这不会那么令人困惑。我正在创建一个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()。是不是有正确/更好的方式?

0 个答案:

没有答案