GridView UIVirtualization and IncrementalLoading


  • I got some Questions regarding this topic.

    VariableSizedWrapGrid and UIVirtualization / Incremental Loading does not work. The seems to be the case since about 2 years, and microsoft is working on this issue. Any new information there? Will it be available anytime soon? Has anybody any nice workaround?

    (ISupportIncrementalLoading) LoadMoreItemsAsync: How is this method triggered exactly? Does it only work with UIVirtualization? Would make sense since otherwise all items would be loaded and no trigger event at the end of the list would be fired. But it seems to work also with WrapGrid and with auto sized containers. So it works also without UIVirtualization? Does anyone now how it is triggering?

    Is there any possibility to know when a ListViewItem / GridViewItem is displayed? I would like to implement incremental loading for a VariableSizedWrapGrid myself since it does not work by default. I thought about adding a Item with a Progressindicator as the GridView Footer. As soon as this item gets displayed I will load additional content. But I can't find any event like this. Is there any other nice solution!

    Much thanks for your help guys!

    Thursday, March 20, 2014 9:23 AM

All replies

  • Can you explain specifically what you are trying to do? The problem with virtualization and the VariableSizedWrapGrid is that the variable sizing requires the grid to know the size of its contents to know how to wrap. This requires loading them, which defeats virtualization. The non-variable WrapGrid doesn't need to calculate the sizes from the contents and so can manage the virtual contents before they are created.

    Thursday, March 20, 2014 2:45 PM
  • Thanks for your answer Rob! That makes absolutely sense.

    I would like to display a large set of items in a VariableSizedGridView (each item includes a image with text). The data will be retrieved from the web, so I would like to load it incrementally.

    Since VariableSizedGridView supports no UIVirtualization I have done some tests with a few devices and it seems like the performance without UIV is quite good. I should be very rarely that more than a few hundert items will be loaded. So I think the best way to go is without UIVirtualization and don't display more then a few hndred items.

    If I need to display more I should just use no VariableSizedGridView to increase performance with UIV.

    Although I don't require the UIV, I do require incremental loading. I need a way to implement it myself for a VariableSizedGridView. The best way would be to show a last item with a progress indicator. As soon as this appears in the viewport I will load additional items. But I can't find a way to get any event when the last item/footer gets displayed.

    Thursday, March 20, 2014 4:41 PM