Is it possible?
We've been having some performance issues with our datagrid, and have tried many of the tips and tricks to improve it (e.g. here and here). None of these made much of a difference.
I reduced the problem to a screen's worth of TextBlock
s on a canvas. Even this will cause the framerate drop to less that 1/sec and eats the entire cpu. At this point the wpf performance monitor ceases to function, but with a smaller window size, layout and rendering are split about 50/50.
Is any way to get wpf to display this sort of data, or will we need to switch to something lower level? This WPFTextBenchmark seems to suggest that the default wpf text display is just a lot slower that other methods.
Edit, additional information:
The idea behind the canvas with textboxs is to reduce the layout calculations, as one textblock's position will be unaffected by the others.
Edit in response to comments:
1) We're looking at many hundreds of cells (about a screens worth), many update multiple times a second, some may be unchanged for minutes. We don't care about updates that are more rapid that would be noticable (say 5/sec) however.
2) We're using INotifyPropertyChanged and DataBindings to update the UI.