Actualmente tenemos un DataGrid
que está vinculado a un DataTable
. También tiene una columna de plantilla con un CheckBox
que agregamos en forma programática. Este propósito de esta columna es realizar un seguimiento de selecciones múltiples en el DataGrid
.Número de visualización de virtualización de fila de DataGrid
Se utiliza una fábrica para crear el CheckBox
es para cada fila.
Existen bastantes registros, por lo que la virtualización de fila se establece en verdadero para que el rendimiento sea aceptable. Sin embargo, estamos viendo un problema extraño en el que si comprobamos algunos CheckBox
es en las primeras 10 filas y luego desplazamos hacia abajo unas 50 filas (la cuadrícula tiene aproximadamente 10 filas visibles al mismo tiempo), hay un montón de otras CheckBox
que parece ser verificado al azar.
Si deshabilitamos la virtualización de fila, este problema no existe (pero el rendimiento es terrible). ¿Hay alguna forma de evitar esto? Alguien sabe lo que podemos estar haciendo mal?
cuando dices que el rendimiento es terrible después de eliminar la virtualización, es terrible en carga o en desplazamiento. Si está en carga, hay una solución que hará que no sea terrible, en scroll es otro problema ... –
Solo está en carga. Todo el rendimiento alcanzado es en el método Mostrar de la ventana que contiene DataGrid. Con la virtualización de filas, se requieren 200 ms para mostrar con 2.500 registros en DataGrid. Sin virtualización de fila, lleva 28 segundos. – WPFNewbie
agregó un código para usted ... solo tuvo que ajustar el rendimiento en el trabajo hace unos días, funciona como un encanto –