【发布时间】:2017-12-07 23:27:28
【问题描述】:
我的 Windows 窗体应用程序有一点问题。 两种表格:父表格 - 这里我有 DataGridView,它显示公司列表。从这里,我可以打开另一个表单,CompanyForm,您可以在其中添加或编辑选定的公司。添加选项工作正常,但是当我编辑公司并想要放弃更改时,在父表单上选择的行已更改,尽管我没有在我的上下文中保存更改。有人可以帮助我吗?
父窗体:
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();
}
公司形式:
public Company Company { get; set; }
private void CompanyForm_Load(object sender, EventArgs e)
{
using (var connect = new ContactEntities())
{
companyBindingSource.DataSource = Company;
}
}
如您所见,我使用的是 bindingsource,但我不知道为什么 grid 会自动更新。
【问题讨论】:
-
当您想放弃更改时,请尝试
yourGridView.CancelEdit(); -
感谢您的回答。到 buttonEditCompany_Click 我添加了 companyDataGridView.CancelEdit();但不起作用。更改后...公司名称示例并按取消按钮 - 网格已更新。
-
Usnig/不使用绑定源,不会改变引用类型的性质。看看linked post。
-
感谢您的回答。我尝试通过将数据从数据库重新加载到绑定源来做到这一点,但我不知道这是否是一个好方法......有人可以帮助我吗?
标签: c# winforms entity-framework bindingsource