I recently noticed that binding is not reevaluated on iOS, when using an ItemTemplateSelector along with a RadListView (latest Telerik nugets as of today), on VM property that is bound with a converter.
Here is the RadListView definition:
<
dataControls:RadListView
ItemsSource
=
"{Binding MyObservableCollection}"
ItemTemplateSelector
=
"{StaticResource MyTemplateSelector}"
SelectionMode
=
"None"
>
Here MyTemplateSelector:
<
DataTemplate
x:Key
=
"DefaultTemplate"
>
<
listView:ListViewTemplateCell
>
<
listView:ListViewTemplateCell.View
>
<
views:MyCellView
/>
</
listView:ListViewTemplateCell.View
>
</
listView:ListViewTemplateCell
>
</
DataTemplate
>
<
DataTemplate
x:Key
=
"EmptyTemplate"
>
<
listView:ListViewTemplateCell
>
<
listView:ListViewTemplateCell.View
>
<
Grid
HeightRequest
=
"60"
/>
</
listView:ListViewTemplateCell.View
>
</
listView:ListViewTemplateCell
>
</
DataTemplate
>
<
selectors:MyTemplateSelector
x:Key
=
"MyTemplateSelector"
DefaultTemplate
=
"{StaticResource DefaultTemplate}"
EmptyTemplate
=
"{StaticResource EmptyTemplate}"
/>
Here is the binding definition in "DefaultTemplate":
<
Label
Grid.Row
=
"3"
Grid.Column
=
"1"
Text
=
"{Binding MyStringProperty, Converter={StaticResource MyStringToStringConverter}}"
Style
=
"{StaticResource MyTextStyle}"
/>
To reproduce, I simply call RaisePropertyChange(nameof(MyStringProperty)) in VMs displayed in the RadListView, and the view does not get updated.
This is perfectly working on Android, and on both Android and iOS when not using any ItemTemplateSelector.
NB : this is not linked to this issue.