Does LongListSelector
support Data Virtualization? I read on several Blogs that it does, but can't get it to work.
Here is what I tried: I provided a IList
implementation as ItemsSource
to the List. The problem is that the List calls GetEnumerator()
instead of this[int index]
to get a list item.
So my question: How do I implement data virtualization for LongListSelector
?
Data virtualization is an umbrella term used to describe an approach to data management that allows an application to retrieve and manipulate data without requiring technical details about the data, such as how the data is formatted or where it is physically located.
Data virtualization is a logical data layer that integrates all enterprise data siloed across the disparate systems, manages the unified data for centralized security and governance, and delivers it to business users in real time.
Data virtualization is an approach to integrating data from multiple sources of different types into a holistic, logical view without moving it physically. In simple terms, data remains in original sources while users can access and analyze it virtually via special middleware.
The Denodo Platform enables business users to search the actual data using an intuitive interface. Users can also browse across defined relationships between data entities and query for specific data.
As you said, the LongListSelector is still based around GetEnumerator even for when rendering IList types. Most likely the control would need to be rewritten to support the purpose. While blogs might say it support it, none of them says how, so I'm not inclined to believe them. The LongListSelector's default is to render all items.
As for the loading of the data, it can be done progressive using a ObservableCollection. I got a example project that shows how to use a ObservableCollection in combination with the LongListSelector.
Basically this could allow you to progressively add more groups and/or, more data to the groups, and the UI should update accordingly.
I looked at the LongListSelector source code, it is NOT possible to virtualize the backing storage. The LongListSelector loads each item from the group list through a foreach loop.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With