Form1 ( , ):
public partial class Form1 : Form
{
private void Form1_Load(object sender, EventArgs e)
{
modelBindingSource.DataSource = db2.Models.ToList();
}
private void btnEdit_Click(object sender, EventArgs e)
{
using (FormModel frm = new FormModel(modelBindingSource.Current as Model))
{
}
}
}
modelBindingSource.DataSource = db2.Models.ToList(); DataSource Models. Models ; , db2 Models. db2, .
using (FormModel frm = new FormModel(modelBindingSource.Current as Model)) Model FormModel.
FormModel :
public partial class FormModel : Form
{
MyDBEntities db2;
public FormModel(Model obj)
{
db2 = new MyDBEntities();
db2.Models.Attach(modelBindingSource.Current as Model);
}
}
Model db2, Model db2 Form1, , :
IEntityChangeTracker
, .
Fix
db2.Models.Attach(modelBindingSource.Current as Model);, . , . . , Attach.
, , obj in FormModel , , FormModel:
public partial class FormModel : Form
{
public FormModel(Model obj)
{
InitializeComponent();
modelBindingSource.DataSource = obj;
}
private void FormModel_FormClosing(object sender, FormClosingEventArgs e)
{
if (DialogResult == DialogResult.OK)
{
if (string.IsNullOrEmpty(txtModelName.Text))
{
MessageBox.Show(" ", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
txtModelName.Focus();
e.Cancel = true;
return;
}
}
}
}
SaveChanges Form1 :
using (FormModel frm = new FormModel(modelBindingSource.Current as Model))
{
if (frm.ShowDialog() == DialogResult.OK)
{
modelBindingSource.DataSource = db2.Models.ToList();
db2.SaveChanges();
}
}
FormModel Form1 . . , OrderEntryForm, OrderDetailForm .. .