La mejor manera de actualizar DataGridView cuando actualiza la fuente de datos base

¿Cuál es la mejor manera de actualizar un DataGridView cuando actualiza la fuente de datos base?

Estoy actualizando el origen de datos con frecuencia y quería mostrar el resultado al usuario tal como sucede.

Tengo algo como esto hecho (y funciona), pero anulando elDataGridView.DataSource no parece la forma correcta

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);
}

Respuestas a la pregunta(7)

Su respuesta a la pregunta