simple how example ejemplo custom columns c# wpf datagrid wpfdatagrid

c# - how - Mejorar el rendimiento de WPF DataGrid



simple datagrid example in wpf (3)

Compruebe si tiene propiedad ScrollViewer.CanContentScroll establecido como False . Establecer esta propiedad en falso deshabilita la virtualización de una manera que degradará el rendimiento de su Data-grid. Para más aclaración refiérase a este CanContentScroll

En mi aplicación .NET 3.5 WPF , tengo un DataGrid WPF que se rellenará con 500 columnas y 50 filas. El rendimiento de la aplicación es muy pobre en el desplazamiento, o cuando hago DataGrid.Items.Refresh() o en la selección de filas.

En realidad, la aplicación tardará unos 20 segundos en actualizar el diseño. Layout_Updated() evento Layout_Updated() se activará después de 20 segundos.

Si reduzco las columnas a 50 o menos, la aplicación será muy receptiva. Según mis resultados, el rendimiento está directamente relacionado con el recuento de columnas.

¿Cómo puedo mejorar el rendimiento de DataGrid ?


Hay algunas opciones que puede activar para ayudarlo con su objeto DataGrid

EnableColumnVirtualization = true EnableRowVirtualization = true

Estos dos son los principales que creo que podrían ayudar. A continuación, intente hacer su enlace asíncrono

ItemsSource="{Binding MyStuff, IsAsync=True}"

Y, por último, he escuchado que establecer una altura y un ancho máximos puede ayudar incluso si está por encima del tamaño máximo de la pantalla, pero yo mismo no noté una diferencia (la reclamación tenía que ver con la medición automática del tamaño)

MaxWidth="2560" MaxHeight="1600"

Además, nunca coloque un DataGrid en un ScrollViewer , porque esencialmente perderá la virtualización. ¡Déjeme saber si esto ayuda!