使用DataGridView BindingSource将更改放弃到EF

时间:2017-12-07 23:27:28

标签: c# winforms entity-framework bindingsource

我的Windows窗体应用程序有点问题。 两种形式:父表单 - 这里我有DataGridView,它显示了公司列表。从这里开始,我可以打开另一个表单CompanyForm,您可以在其中添加或编辑选定的公司。添加选项工作正常,但是当我编辑公司并想要放弃更改时,在父表单选定行上已更改,但我不保存对我的上下文的更改。有人可以帮帮我吗?

ParentForm:

private void CompaniesForm_Load(object sender, EventArgs e)
    {
        using (var connect = new ContactEntities())
        {
            companyBindingSource.DataSource = connect.Companies.ToList();
        }
    }

按钮编辑公司:

private void buttonEditCompany_Click(object sender, EventArgs e)
    {
        CompanyForm company = new CompanyForm();
        company.MdiParent = this.MdiParent;
        company.Company = (Company)companyBindingSource.Current;
        company.Show();
    }

CompanyForm:

public Company Company { get; set; }    
private void CompanyForm_Load(object sender, EventArgs e)
        {
            using (var connect = new ContactEntities())
            { 
                companyBindingSource.DataSource = Company;
            }
        }

正如你所看到的,我使用的是bindingsource,我不知道为什么网格会自动更新。

1 个答案:

答案 0 :(得分:0)

编辑:回答错误的问题。谢谢@Reza Aghaei向我指出了这一点。

只是一个猜测,但如果您在绑定中使用Mode=TwoWay,请尝试设置UpdateSourceTrigger=Explicit并在保存更改时调用UpdateSource()