Example shows the built-in data virtualization support in WPF DataGrid where it processes the record creations in on-demand for better loading performance.
In this way, datagrid provides the same loading time for 1K records and 1 million record. You can enable data virtualization in datagrid by setting EnableDataVirtualization property. Also, setting UseDrawing property as Default
improves the loading and also scrolling performance.
In addition to that datagrid provides option to show built-in busy indicator for long running operations by setting ShowbusyIndicator as true
to enhance the user experience.
WPF DataGrid - Scrolling performance with more number of rows and columns example