This repository was archived by the owner on May 1, 2024. It is now read-only.
Retain Strategy on Listview with DataTemplateSelector causes BindingContext to revert to null #3602
Labels
a/listview
Problems with the ListView/TableView
e/4 🕓
4
help wanted
We welcome community contributions to any issue, but these might be a good place to start!
inactive
Issue is older than 6 months and needs to be retested
t/bug 🐛
up-for-grabs
We welcome community contributions to any issue, but these might be a good place to start!
Description
The issue seems to come up because of this await
Xamarin.Forms/Xamarin.Forms.Core/TemplatedItemsList.cs
Line 1206 in a9a7277
The await happens, a new template is swapped in, and then the above code sets the BindingContext back to null. If you set the ListView Cache strategy to Recycle the issue doesn't happen because that await doesn't occur
For example I had to do this little hack here
https://github.com/xamarin/Xamarin.Forms/pull/3518/files#diff-bb6d28847711cc5f78841d28a70d000bR168
To make sure the BindingContext doesn't get reset back to null after already being set inside the DataTemplateSelector
Steps to Reproduce
In the Control Gallery remove the hack I added above and you'll see the effect of the BindingContext getting set and then unset to null because of the race condition
Expected Behavior
The BindingContext on the view cell should remain what I set it to. A pending operation shouldn't set it back to null.
Actual Behavior
A pending operation sets the BindingContext back to null
Basic Information
The text was updated successfully, but these errors were encountered: