Melhor maneira de atualizar o DataGridView quando você atualiza a fonte de dados base

Qual é a melhor maneira de atualizar um DataGridView quando você atualiza a fonte de dados base?

Estou atualizando a fonte de dados com frequência e queria exibir o resultado para o usuário à medida que ele acontece.

Eu tenho algo assim feito (e funciona), mas anulando oDataGridView.DataSource não parece o caminho certo.

List<ItemState> itemStates = new List<ItemState>();
dataGridView1.DataSource = itemStates;

for (int i = 0; i < 10; i++) { 
    itemStates.Add(new ItemState { Id = i.ToString() });
    dataGridView1.DataSource = null;
    dataGridView1.DataSource = itemStates;
    System.Threading.Thread.Sleep(500);
}

questionAnswers(7)

yourAnswerToTheQuestion