xamarin/Xamarin.Forms

[iOS] DataTemplateSelector doesn't work when an item is re-created in code-behind

Open

#7,836 opened on Oct 5, 2019

 (4 comments) (0 reactions) (0 assignees)C# (1,926 forks)batch import
a/collectionviewhelp wantedp/iOS 🍎t/bug :bug:up-for-grabs

Repository metrics

Stars
 (5,644 stars)
PR merge metrics
 (No merged PRs in 30d)

Description

Description

This works in ListView but not CollectionView. When a template selector is used (in this case with two different data templates) and a button click clears StackLayout children and adds a new view, CollectionView renders items in wrong positions.

Steps to Reproduce

  1. Run repro.
  2. Scroll to item 49.
  3. Click the "Clear" button
  4. Observe that the scroll position changes and there are multiple items with the new "Cleared at timestamp" view.
  5. Comment out Items.Add(new Model1())
  6. Re-run the test.
  7. Observe that the issue does not happen this time.

Expected Behavior

Code-behind changes should not confuse the CollectionView when a DataTemplateSelector is used.

Basic Information

  • Version with issue: 4.4.0.1211-nightly
  • Last known good version: N/A
  • IDE: VS2019
  • Affected Devices: XS

Screenshots

file (1)

Reproduction Link

App100.zip

Contributor guide