私のWindowsフォームアプリケーションには少し問題があります。 2つのフォーム:親フォーム - ここに私は会社のリストを提示するDataGridViewを持っています。ここから、選択した会社を追加または編集できる別のフォームCompanyFormを開くことができます。追加オプションはうまく動作しますが、会社を編集して変更を破棄したい場合は、親フォームで選択した行が変更されましたが、自分のコンテキストで変更を保存しません。誰かが私を助けることができますか?DataGridView BindingSourceでの変更をEFに破棄
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を使用して、私はそれなぜグリッドを知りません自動的に更新されました。
変更を破棄したいときは、 'yourGridView.CancelEdit();'を試してください – CodingYoshi
答えをありがとう。 To buttonEditCompany_Click私はcompanyDataGridView.CancelEdit()を追加しました。動作しません。変更後...会社名の例とキャンセルボタンを押す - グリッドが更新されました。 –
Usnig /バインディングソースを使用しないで、参照タイプの性質を変更しません。 [リンクされた投稿](https://stackoverflow.com/q/38187441/3110834)を見てください。 –