This repository has been archived by the owner on May 1, 2024. It is now read-only.
[UWP] CollectionView disable caching item templates with DataTemplateSelector #14238
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description of Change
Issue #14236 seems related to #11732 and appeared after pull request #11043.
There we are trying to reuse an ItemTemplate but it doesn't work when CollectionView uses a DataTemplateSelector instead of an ItemTemplate directly.
The solution is not perfect, but it returns CollectionView to working condition as it was before #11043. Template caching still works for an ItemTemplate and disabled when we use a DataTemplateSelector.
That would be great to have a template cache for templates selected by DataTemplateSelector, but I don’t know how to do it exactly. I have tried to cache a renderer with a template as a key, it works incorrectly. Currently, I have no time for further experiments. If you have any advice on how to do it the right way please let me know. I will try to implement it later.
Issues Resolved
API Changes
None
Platforms Affected
Behavioral/Visual Changes
None
Before/After Screenshots
Not applicable
Testing Procedure
Before fix on the second or third click, we get items with incorrect templates and with 0 in RequestTemplateCount.
After the fix, all items have correct templates.
PR Checklist