I'm using a WPF datagrid (.Net or Toolkit), that is unacceptably slow when binding to an observable collection. It contains roughly 3500 rows and 10 columns and takes over a minute to display the contents. Everything points the the fact that it is not doing UI virtualization of the data. However, I can't figure out why that is the case.
I am not using grouping. I have made sure the grid's height is contained by placing it in a panel with a fixed height. I have set all the virtualization properties on the DataGrid. I have checked in snoop and these properties are set. However, snoop also shows that after loading there are several thousand datagridrows in the visual tree. Whether this is something that is caused by using snoop I have no idea. I have tried using AQTime to find out what is going on. The slowdown does not appear to be in our code but in system code. However, I can't find a way of easily seeing what WPF is up to. I have stripped down the grid and have tried both the .Net 4 DataGrid and the toolkit DataGrid. Both are unacceptably slow to show the initial data. I have tried fixing the row height and column widths. This also makes no difference.
How can I confirm that virtualisation is on and if is is off why it is off? How can I debug what is happening outside of our code? Is there any way of seeing what WPF is up to? (I've tried using the WPF Performance suite, but for some reason it does not give any output for our application).
I'm running out of ideas. It should not be this slow, when only 10 rows are visible in the UI.
Can anyone help?