Description
openedon Jun 18, 2022
Description
The WinUI CollectionView does not recycle item-containers and instead creates a new item-container every time some data scrolls into view.
Steps to Reproduce
Minimum repo:
https://github.com/Keflon/MauiRecycleBug
Steps:
Create a CollectionView
Fill it with items
Scroll up and down in the CollectionView
For the sample, watch the Debug output.
Android
A small number of CollectionItem instances are created and these are recycled.
Example Debug output:
Created CollectionItem. InstanceId: 12. There are 12 instances allocated
WinUI
A new CollectionItem is created every time an instance scrolls into view.
Example Debug output:
Created CollectionItem. InstanceId: 133. There are 133 instances allocated
Scrolling quickly to the end and back (e.g. by dragging the scroll-bar) causes a CRASH
Scrolling slowly can eventually instigate an item being garbage-collected
Example Debug output:
Collected CollectionItem. InstanceId: 9. There are 129 instances allocated
Related: The DataTemplate in the sample code has a CheckBox.
- The CheckBox is rendered incorrectly until the Window is resized horizontally.
- Should I open a new bug for this?
- Having the CheckBox present in the DataTemplate causes a LOT of memory to be consumed, leading to an
OutOfMemoryException
- Is this a separate bug?
Version with bug
6.0.400 (current)
Last version that worked well
6.0 Release Candidate 3
Affected platforms
Windows
Affected platform versions
Latest
Did you find any workaround?
Note: I can't confirm 100% this worked in the previous release because I don't know how to roll-back, but I'm certain this is a new problem.
Relevant log output
No response