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 having a nested grid layouts with auto and definitive row heights, the content in the ListView ItemTemplate is not property sized only on iOS. On Android, MacCatalyst and WinUI the content is property sized.
Solution:
1. Using only auto-sized grid rows,
2. Using grouping and simplifying the layout, removing nested grid layouts, and using a vertical stack.
The bug can be reproduced quite easily with the SDK examples. Choose any ListView example from the LoadOnDemand category that uses LoadOnDemandMode set to Automatic, e.g. ListView/LoadOnDemand/LoadOnDemandEvent. Remove the initial items from the ItemsSource:
public ViewModel()
{
this.Source = new ObservableCollection<string>();
//for (int i = 0; i < 14; i++)
//{
// this.Source.Add(string.Format("Item {0}", i));
//}
this.LoadItemsCommand = new Command(this.LoadItemsCommandExecute);
}
Run the example to observe the exception almost immediately.
The bug occurs on Android when removing an item from a group and using sticky group headers.
There is a slow performance when scrolling, expand/collapse items when the ListView Groups are sticky and GroupHeaderTemplate is used.
Workaround:
1. Set IsGroupHeaderStickty to false.
or
2.. Use the default group header template
Having ContentViews for left and right item swipe
The ListView crashes
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.
When setting margin to the elements in the template, the margin is not respected
Android: when tapping on load on demand template the data is not loaded.
If you use the LoadOnDemandCommand you can bind the command to the button inside the template.
On WinUI there is an exception runtime
Workaround:
Use automatic load on demand mode or bind the command to the template