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

Can Row/Column virtualization be done asynchronously?

2 Answers 133 Views
GridView
This is a migrated thread and some comments may be shown as answers.
Paul
Top achievements
Rank 1
Paul asked on 01 Nov 2011, 01:54 PM
I have a RadGridView.  Binding to my data source takes about 30 seconds for 1000 items.  This is far too slow for me.  So I turned on virtualization.  This sped things up, but now I can't scroll without a 5 second delay per screen of items.  Now this is too slow for me.  So here's what I want:

Grid gets its items source and acts as if virtualization is on.  Stuff shows up instantly.
Once grid is displaying items, it starts a separate thread to load the containers for everything else.
After 30 seconds, the grid is done and fluid to navigate in.  BUT it still responded and showed some items instantly.

Possible?

2 Answers, 1 is accepted

Sort by
0
Vlad
Telerik team
answered on 01 Nov 2011, 02:45 PM
Hi,

 Virtualization is turned on by default - you do not need to set anything. Most probably the grid is your case is measured with infinity and in this case any UI virtual items control will attempt to create all UI containers at once. You can check for example these demos to know more about RadGridView performance:
http://demos.telerik.com/silverlight/#GridView/UIVirtualization
http://demos.telerik.com/silverlight/#GridView/Performance

You can check also our Data Virtualization - may help you in some of your scenarios:
http://demos.telerik.com/silverlight/#DataVirtualization/FirstLook

All posted demos are for Silverlight however you can find all of them in your local copy of our WPF demos as well. 

Best wishes,
Vlad
the Telerik team

Explore the entire Telerik portfolio by downloading the Ultimate Collection trial package. Get it now >>

0
Paul
Top achievements
Rank 1
answered on 01 Nov 2011, 05:59 PM
I don't believe you read my question (or subject) at all.

I know what virtualization is; I talked about the differences with having it on and off above.  Again:

I want to load a RadGridView with virtualization ON.  As soon as the grid displays the starting viewable rows, I want the virtualization turned off, so the grid generates everything it needs and scolling will be smooth.  I want this done in a NON-UI thread though so I don't block the UI.

Here's my problem.  I am loading 1000 objects into an ObservableCollection and setting the ItemsSource on the grid.  Here's the results:

With virtualization off:
A RadGridView loads in 2 minutes, 6 seconds.  Not acceptable.  Scrolling is great though.
A GridView loads in 1 minute, 6 seconds.  Not acceptable.  Scrolling is great though.

With virtualization on:
A RadGridView loads in 5 seconds, but takes 18 seconds to scroll through the list (unacceptable).
A GridView loads in 3 seconds and takes 14 seconds to scroll through the list. (better, still not good enough).

Using a ListView with a GridView inside (no virtualization options here):
My data loads instantaneously, and takes 11 seconds to scroll through the list.

Now I'm reinventing the wheel and adding sort and other methods to the ListView component via attached properties because RadGridView is too slow.
Tags
GridView
Asked by
Paul
Top achievements
Rank 1
Answers by
Vlad
Telerik team
Paul
Top achievements
Rank 1
Share this question
or