Since migrating to MAUI .NET8 GA 8.0.3 (and Telerik 6.5) - on iOS the RadListView keeps repeatedly triggering the defined LoadOnDemand command to get more items even though list has not been scrolled by user.
the behavior is valid for the command, event and collection and when automatic load on demand mode is used.
When using manual mode, it works as expected.
When updating to .net8 the following snippet doesn't work with target net8 (maui 8.0.3). Same works with net7 (up to 7.101).
Stops me from targeting net8.
<telerik:RadListView.FooterTemplate>
<DataTemplate>
<Grid
BackgroundColor="{AppThemeBinding Dark={StaticResource ListElementColorDark},
Light={StaticResource ListElementColorLight}}"
IsVisible="{Binding CanSearchMore}">
<telerik:RadBorder Padding="8,10" Style="{StaticResource ListItemContainer}">
<Label HorizontalOptions="Start" Text="{Binding SearchMoreText}" />
</telerik:RadBorder>
<Grid.GestureRecognizers>
<TapGestureRecognizer Command="{Binding SearchMoreCommand}" />
</Grid.GestureRecognizers>
</Grid>
</DataTemplate>
</telerik:RadListView.FooterTemplate>
1. TapGestureRecognizer: Command is not executed / Click not detected
2. Style: Having a PointerOver in "ListItemContainer" works with net7. Doesn't work with net8
The exception is easily reproducible in SDK Browser on iOS and MacCatalyst. Start the LoadOnDemandCommand or LoadOnDemandEvent example to see the exception. The LoadOnDemandCollection seems to work correctly, however.
The ListViewLoadOnDemandCollection can be used instead of the command/event as a temporary workaround, until the bug gets fixed.
When setting margin to the elements in the template, the margin is not respected
windows device with touch capabilities/monitor with touch -> the listview swipes and shows the swipe template, however pressing the button in the swipe or attempting to close the swipe makes the swipe content disappear and the entry to remain in the swiped position.Also multiple swipes are allowed. The swipe cannot be ended, etc.
Using the mouse - > swiping works as expected.
I have a collection of items, and one of the properties notifies changes to the UI. ("BooleanProperty") I also bind to the SelectedItem property on the list view to toggle this bool property to true or false.
I have another property "Description" that I am sorting by. When sorting the ListView and select an item, the items with the same value are reordered.
The bug occurs on Android when removing an item from a group and using sticky group headers.
ListView with a TemplateSelector crashes on iOS 16 device!
<telerik:RadListView ItemTemplate="{StaticResource ActTempSelector}" ItemsSource="{Binding Suggestions}">
</telerik:RadListView>
log output is the following:
2022-10-08 20:44:46.810 Xamarin.PreBuilt.iOS[1593:343579] *** NSForwarding: warning: object 0x281edbea0 of class 'Telerik_Maui_Controls_Compatibility_DataControlsRenderer_iOS_TKExtendedListView' does not implement methodSignatureForSelector: -- trouble ahead
2022-10-08 20:44:46.810 Xamarin.PreBuilt.iOS[1593:343579] *** NSForwarding: warning: object 0x281edbea0 of class 'Telerik_Maui_Controls_Compatibility_DataControlsRenderer_iOS_TKExtendedListView' does not implement doesNotRecognizeSelector: -- abort
Changing the ItemsSource property of the ListView causes it to recreate its cells. The problem is that the existing cells are never reclaimed by the garbage collector, so the memory usage grows constantly. Eventually, the application can run out of memory, if the ItemsSource is updated too many times.
Note: It is possible the memory leak is caused by the bindings holding objects longer than necessary. Similar memory leaks can be reproduced with the .NET MAUI CollectionView as well. Here are a few GitHub issues for the CollectionView that might be related: