Cuál es la diferencia entre invalidateList e invalidateDisplayList?

Tengo un DataGrid, poblado con objetos en una ArrayCollection. Después de actualizar uno de los campos de los objetos, quiero que la pantalla se actualice. El origen de datos no es vinculable, porque lo estoy construyendo en tiempo de ejecución (y todavía no entiendo cómo hacerlo vinculable sobre la marcha, esa es otra pregunta).

En esta situación, si llamo a InvalidateDisplayList () en la cuadrícula, parece que no pasa nada. Pero si llamo invalidateList (), las actualizaciones suceden. (Y también es muy suave, no parpadea como esperaría de invalidar una ventana en WIN32).

Entonces, la pregunta: ¿cuál es la diferencia entre InvalidateList e InvalidateDisplayList? De la documentación parece que cualquiera de los dos debería funcionar.

Respuestas a la pregunta(2)

Su respuesta a la pregunta