Я разрабатываю систему инвентаризации с использованием WindowsForms, и я использую Entity Framework для управления содержимым моей базы данных в Winforms. Моя проблема очень проста, и ее можно найти в большинстве вопросов о переполнении стека, но они не совпадают с моими (я думаю, потому что они не работали). Я использую MDI .
Ну, у меня есть datagridview, показывающий данные в дочерней форме 1 :
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
CargarLista();
}
public virtual void CargarLista()
{
var productos = _inventarioRepository.GetList();
BindingSource source = new BindingSource();
source.DataSource = productos;
ListaProductos.DataSource = source;
}
public void Actualziar()
{
BindingSource source = new BindingSource();
var productos = _inventarioRepository.GetList();
source.DataSource = _context.Productos.Local.ToBindingList();
source.ResetBindings(false);
ListaProductos.DataSource = typeof(List<>);
ListaProductos.DataSource = source;
}
Все работает нормально, и у меня есть операция INSERT, когда эта операция успешно вставляется в базу данных, я refre sh my DataGridView следующим образом: (дочерняя форма 2)
private void button1_Click(object sender, EventArgs e)
{
// my inserting code
_context.Productos.Add(model);
_context.SaveChanges();
// _inventory is an instace to call child form 1 methods
_inventory.Actualizar();
}
Операция INSERT отлично работает, потому что после нажатия кнопки DatagridView обновляется успешно.
Моя проблема в том, что когда я выполняю операцию изменения / обновления, DatagridView не работает и не обновляется сам: (дочерняя форма 3)
private void UpdateButton_Click(object sender, EventArgs e)
{
// my updating code
_context.Entry(model).State = EntityState.Modified;
_context.SaveChanges();
// _inventory is an instace to call child form 1 methods
_inventory.Actualizar();
}
Операция изменения работает нормально в базе данных, но не обновляется в DataGridView. Единственное решение для обновления DataGridView - закрыть и снова запустить программу и снова загрузить данные.
В заключение: datagridview при операции вставки обновляется нормально, но при внесении изменений - нет. Как решить эту проблему?