This is a migrated thread and some comments may be shown as answers.

Scroll delay

7 Answers 145 Views
GridView
This is a migrated thread and some comments may be shown as answers.
David
Top achievements
Rank 1
David asked on 09 Jun 2009, 11:57 AM
Hello,
I'm evaluating the GridView by writing a small app to test it.
In the app I'm using 2 grids: the RadGridView on one side of the view and Xceed's DataGridControl on the other.
Both grid's ItemsSource have the same instance of ObservableCollection<Order> (from NW db) that is set from the code behind.

One thing that is immidiately noticable, even with a small amount of records (100),
is when scrolling vertically - the RadGridView seems to take a while to update the view (compared to Xceed's grid).
whether if I drag the scroller up and down or if I click on it to perform a big scroll step.

My XAML for the RadGridView looks like this:

<telerik:RadGridView
    telerik:StyleManager.Theme="Vista" 
    
IsReadOnly="True"
    ScrollMode
="RealTime" />

 

Is this a known behavior or am I missing something?
Is there a way to fix this?

Thanks,
David

7 Answers, 1 is accepted

Sort by
0
Hristo
Telerik team
answered on 11 Jun 2009, 08:02 AM
Hello David,

As you probably know we are virtualizing the rows. This means that we are not creating all rows - only the one that will fit in the viewport. When you scroll we are creating new rows and fill them with data. This is expensive operation and this is the reason for choppy scrolling (on big scroll step).
One way to stop row virtualization is to put RadGridView in vertical stack panel. This will improve scrolling but it will load all rows (if you have a lot it will take more time and memory to load).

The good news is that we are totally reworking RadGridView rows virtualization. We'll add column virtualization and container recycling for rows and columns which will further improve scrolling performance and memory foot-print. We will introduce it with some of the service packs after Q2 release (Q3 at the latest).

Best wishes,
Hristo
the Telerik team

Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
0
David
Top achievements
Rank 1
answered on 14 Jun 2009, 07:01 AM
Hello Hristo,
Thank you for the reply.

I still have only one thing I haven't figured out yet:
I understand how row virtualization works, but once you've loaded a row into the memory, shouldn't it stay there and "load" much quicker when it's coming back into the viewport?

Cause even after bringing ALL of the rows into the viewport by scrolling through all of the rows, I've still experienced the choppy scrolling.
It's as if the rows are ALWAYS reloading all over again when they're coming into the viewport.

Can you provide a sample for putting the RadGridView in a vertical stack panel?

Thanks,
David
0
Accepted
Hristo
Telerik team
answered on 15 Jun 2009, 09:22 AM
Hi David,

Yes in theory the loaded row should stay in memory but our current implementation remove rows that are not in the viewport. We are aware that this may not always be the expected behavior and this is why we are reworking the virtualization. We will introduce two virtualization modes: standard - the one that you expect - only visible rows are created and they will stay in memory even when they are not in the viewport. The other virtualization mode will be recycling - much like in .Net 3.5 SP1. The same container will be reused so performance will be much better (than standard mode) and memory foot-print will be smaller.

I'm sorry for misleading you but if you put RadGridView into vertical stack panel you will lose the vertical scrollbar so you won't be able to scroll (you will stop row virtualization and performance will suffer).

Thank you for your understanding.

Sincerely yours,
Hristo
the Telerik team

Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
0
David
Top achievements
Rank 1
answered on 15 Jun 2009, 11:21 AM
Hello Hristo,
Will the two virtualization modes be ready by Q2, which will due by the end of June (in ~2 weeks)?

If not, then when exactly?

Thanks,
David
0
Accepted
Hristo
Telerik team
answered on 15 Jun 2009, 01:01 PM
Hi David,

We won't be able to do this for the Q2 release. We will do our best to introduce it with some of the service packs after Q2 release (Q3 at the latest).

I hope that this timeframe is acceptable for you.

Regards,
Hristo
the Telerik team

Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
0
David
Top achievements
Rank 1
answered on 05 Jan 2010, 05:09 PM
Hello Hristo,
Was the bug fixed in the released Q3 version?

Thanks,
David
0
Vlad
Telerik team
answered on 06 Jan 2010, 07:34 AM
Hi David,

Indeed we reworked the grid scrolling completely - please check this demo to see how the grid will perform with large collections with many columns:
http://demos.telerik.com/wpf/?GridView/UIVirtualization

Sincerely yours,
Vlad
the Telerik team

Instantly find answers to your questions on the new Telerik Support Portal.
Watch a video on how to optimize your support resource searches and check out more tips on the blogs.
Tags
GridView
Asked by
David
Top achievements
Rank 1
Answers by
Hristo
Telerik team
David
Top achievements
Rank 1
Vlad
Telerik team
Share this question
or