Hi,
In my scenario i do not want virtualization on and hence I have switched it off by wrapping grid in scrollviewer, the performance is good when i am scrolling but the moment I add conditional formatting (via code behind) i see the scrolling is very slow. I used JetBrains dotTrace and windbg and can see the grid is recycling cells (See attached symbol). Can you please explain why this is so, the reason i turned off virtualization is because i have limited number of data rows (around 2000) and i do not want virtualization enabled.
Yes Please.
Since this is a performance issue due to the limitation in xamgrid's design/implementation, do you think infragistics would consider this issue to be important engough to open up a case and fix this any time soon?
We need conditional formatting turned on and we add rows to our grid from external sources (I believe this is basic functionality for any grid), because of the performance reason as explained before, we cannot turn on conditional formatting auto refresh on.
Aside: As of writing this I have explained this to Kiril but haven't heard anything from him yet. Appreciate if we could at least open up a case to provide any other option to not repaint all cells but just for only the new row that is added to the grid.
I really want to use xamgrid but this issue is a blocker, we cannot freeze the UI thread for 3-4 seconds every time a new row is added to the grid.
Hope you understand the seriousness of this issue and will take it up with your dev team
Thanks much,
Rohit
Hello Rohit,
I am just checking, if you need any further assitance on this matter.
The conditional formatting is applied on a column and it evaluates all the cells in this column / all rows. Currently your cannot create a conditional formatting that can be applied only on specific row. If the ‘ShouldRefreshOnDataChange’ property is set to “true”, it makes the rule to be reapplied if the data is changed and this makes the delay in your scenario.
Let me know, if you have any other questions on this matter.
Alternatively: how can i apply row level conditional formatting to the newly added row to the grid (without repainting all the cells)?
I am sorry, but as per the documentation this is to be applied per row not "rows" across the grid.
So you are saying - If i have 2000 rows on my grid and row level conditional formatting is applied, and I add one row, we are going to repaint all rows/cells across the grid? If i am adding one row why are other row's cell style is being re-applied? Seriously, does it sound right to you? Because of this the entire core is maxed out when i add just one row.
Could you please double check this behavior with your development team. This sounds more like a design issue/bug to me rather "by design" behavior.