views:

72

answers:

1

I have some performance related questions about SL Enterprise app development.

-We have 10.000 rows binding to an ItemsSource control. (A total of 100.000+ UIElements when databound)

Q1.How to do this binding in another thread? Because Silverlight gets stuck while the binding happens.

Q2.Any other ways to do this that you suggest with the same visual flexibility like we have in an ItemsControl.

-We are pulling a total of 60MB (unzipped binary serialized XML) data from server and letting our SL users use it for a period of 20 minutes.

Q1.We have some memory leaks and getting hard time to figure out what’s staying in the memory? Do we have a tool to show this?

According to our latest test UIElements are the ones filling the memory. We have 5 nested Itemscontrols, tracking a lot of “loaded” events of inner control in order to fill the appropriate values with calculations. As far as I see virtualization is not working on Items control.

Thanks for all your time.

+1  A: 

If you are using the DataGrid, Virtualization should be on by default.

Pulling that much data at one time might also pose a problem. I'd try to find some sort of solution that involves server-side paging.

EDIT:

Just saw that you are using an ItemsControl. The biggest performance boost you'll see (before even getting server paging to work) would be to get virtualization working. Here's a good article about doing it with a generalized ItemsControl (It also addresses your problem with events not firing correctly):

http://blogs.claritycon.com/blogs/lee%5Froth/archive/2009/09/16/custom-panels-in-silverlight-wpf-part-4-virtualization.aspx

Gurdas Nijor