2010-09-01 44 views
1

我有一个winForms DataGridView绑定到List<MyObjectType>。我的问题是,一旦我做了初始myDataGridView.DataSource = myObjectList;即使在调试器中myDataGridView.DataSource上的行计数更新,添加/删除列表中的元素并未反映在显示的DataGridView中。当附加行被添加到绑定的DataSource时,DataGridView不会更新,除非我先将它清空

我可以强制DGV更新所显示的行,如果在重新分配列表之前将空数据源归零。这看起来很丑,我想知道如果我没有错过一个更简单的方法来做到这一点。

myDataGridView.DataSource = null; 
myDataGridView.DataSource = myObjectList; 

回答

1

List<T>集合不支持更改通知,所以DataGridView将永远无法检测到当您添加/删除元素。考虑使用ObservableCollection<T>,其中支持更改通知

+0

'ObservableCollection '不适用于'DataGridView'。 'BindingList '是用于在'DataGridView'或'DataTable'中绑定的集合类型 – Fabio 2015-06-03 23:09:08

相关问题