We are developing a view that needs to display automatically updated data. View is expected to be able to handle several hundred rows, of which about 100-200 could be changed per second. We would expect UI to be responsive when new rows are added cells of existing rows are changed. We would expect it also to work responsively when user is scrolling the content.
We have tested that use case works pretty well if we don't use any customization and text only fields. We are using following features that we have found slowing down the datagrid considerably:
- Checkbox column: This we have tackled by not showing the column while data changes. While this is inconvenient, we can live with it
- QueryRowHeight: Default row height was ok for us. We have registered QueryRowHeight with following calculation: e.Height = dataGrid.GetRowHeight(e.RowIndex) -10
- QueryRowStyle: We wanted to have green background for selected rows
We are currently using Xamarin Forms 4.2 (UWP) and Datagrid version 17.3.0.19. This use case is relevant on UWP version of our multiplatform Forms client.
We have tested also replacing our UI with example Page copied from SfDatagrid documentation and noticed that it also slows down considerably with QueryRowHeight and QueryRowStyle enabled.
We would like to know if there is anything we can do to have better responsivity, or if it would be possible to improve performance of SfDataGrid when these customizations are enabled.
Currently we have tried optimizing the UI updates (both row adds and row content updates) to happen in batches as much as possible. While this helps UI not to completely freeze, it also makes UI to feel quite flow compared to competing platforms (meaning totally different platform on same PC like standard Microsoft WPF datagrid).