We are seeing some fairly major slowness when rendering data in a GridView. This is especially noticeable on slower client machines, where it seems to be taking about 6-8 seconds to render all the data in a grid. There is not a huge amount of data, it's about 10 rows and around 15 columns.
I have read your article on degraded grid view performance and have made the following enhancements:
- Discontinued use of converters.
- No longer using RowStyle or AlternateRowStyle. Instead I am using an implicit style.
Unfortunately we are using CellTemplates and we will continue to have to do so. The data displayed in the grid columns is very rich and any individual cell may have a unique background color, foreground color, format style (bold, underline, etc.), may blink (using a storyboard and animation) and so forth. Plain and simple text binding will not be possible for this grid. Our cell template's data template has a reference to our own user control that basically displays a Grid and TextBlock with the appropriate properties set.
I have run the application through a profiler tool and it appears that the methods which are taking the most time are:
Telerik.Windows.Controls.GridView.GridViewScrollViewer.MeasureOverride
Telerik.Windows.Controls.GridView.GridViewVirtualizingPanel.MeasureOverride
inside this last method, the method Telerik.Windows.Controls.GridView.GridViewCellsPanel.InsertContainer seems to be taking a long time.
I'm pointing these out in hopes that you can give some advice on what we can do to improve the performance.
I have read your article on degraded grid view performance and have made the following enhancements:
- Discontinued use of converters.
- No longer using RowStyle or AlternateRowStyle. Instead I am using an implicit style.
Unfortunately we are using CellTemplates and we will continue to have to do so. The data displayed in the grid columns is very rich and any individual cell may have a unique background color, foreground color, format style (bold, underline, etc.), may blink (using a storyboard and animation) and so forth. Plain and simple text binding will not be possible for this grid. Our cell template's data template has a reference to our own user control that basically displays a Grid and TextBlock with the appropriate properties set.
I have run the application through a profiler tool and it appears that the methods which are taking the most time are:
Telerik.Windows.Controls.GridView.GridViewScrollViewer.MeasureOverride
Telerik.Windows.Controls.GridView.GridViewVirtualizingPanel.MeasureOverride
inside this last method, the method Telerik.Windows.Controls.GridView.GridViewCellsPanel.InsertContainer seems to be taking a long time.
I'm pointing these out in hopes that you can give some advice on what we can do to improve the performance.