Я заполняю GridView.DataSource из модели EntityFramework:
gwTimeLog.DataSource = _entities.TimeLogs;
Когда в _entities добавляется новая строка, я пытаюсь обновить сетку (попытался использовать тот же оператор, что и выше, установив его значение null, затем вернуться к _entities.TimeLogs и т. Д.), Но сетка просто не обновится , Хотя _entities.TimeLogs на самом деле содержит новые строки.
Что мне не хватает?
Ответ заключается в том, чтобы сетка была подключена к BindingList, а не к списку.
СТАРЫЙ ОТВЕТ: Вы пытались вызвать GridView.DataBind ()?
Woops, я думал, что это DataGrid WebForms.
Если вы используете WinForms, вы можете заглянуть в класс BindingSource. Привязка к этому классу, а не к вашему списку, обеспечит уведомление об обновлении и т. Д.
У меня работает следующий код:
List<Person> names = new List<Person>();
names.Add(new Person(){
FirstName = "Steve",
LastName = "Jobs"
});
names.Add(new Person()
{
FirstName = "Bill",
LastName = "Gates"
});
BindingSource source = new BindingSource();
source.DataSource = names;
dataGridView1.DataSource = source;
names.Add(new Person()
{
FirstName = "Steve",
LastName = "Balmer"
});
source.ResetBindings(false);