Ну, это не становится намного лучше, чем это. Официально, необходимо использовать
dataGridView1.DataSource = typeof(List);
dataGridView1.DataSource = itemStates;
, Это все еще, "очищают/сбрасывают источник" вид решения, но я должен все же найти что-либо еще, что надежно обновило бы источник данных DGV.
Попробуйте этот Код
List itemStates = new List();
for (int i = 0; i < 10; i++)
{
itemStates.Add(new ItemState { Id = i.ToString() });
dataGridView1.DataSource = itemStates;
dataGridView1.DataBind();
System.Threading.Thread.Sleep(500);
}
Я сам столкнулся с этим. Моя рекомендация: если вы являетесь владельцем источника данных, не используйте List . Используйте BindingList . В BindingList есть события, которые запускаются при добавлении или изменении элементов, а DataGridView автоматически обновляется при возникновении этих событий.