I tried to change my implementation to make use of the Xamarin Toolkit ObservableRangeCollection instead of adding every element to the ObservableCollection one by one.
But the notification throws an error when adding the range.
public ObservableRangeCollection<Class> Items { get; set; } = new ObservableRangeCollection<Class>();
Items.AddRange(items.Where(x => !Items.Contains(x)));
throws exception
Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
at System.Collections.Generic.List`1[T].get_Item (System.Int32 index) [0x00009] in /Users/builder/jenkins/workspace/archive-mono/2020-02/android/release/external/corefx/src/Common/src/CoreLib/System/Collections/Generic/List.cs:161
at System.Collections.Generic.List`1[T].System.Collections.IList.get_Item (System.Int32 index) [0x00000] in /Users/builder/jenkins/workspace/archive-mono/2020-02/android/release/external/corefx/src/Common/src/CoreLib/System/Collections/Generic/List.cs:188
at System.Collections.Specialized.ReadOnlyList.get_Item (System.Int32 index) [0x00000] in /Users/builder/jenkins/workspace/archive-mono/2020-02/android/release/external/corefx/src/System.ObjectModel/src/System/Collections/Specialized/NotifyCollectionChangedEventArgs.cs:407
at Syncfusion.SfSchedule.XForms.Droid.SfScheduleMapping.Appointments_CollectionChanged (System.Object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) [0x00028] in <82439d946afb4ad698e69aca95eac32c>:0
at System.Collections.ObjectModel.ObservableCollection`1[T].OnCollectionChanged (System.Collections.Specialized.NotifyCollectionChangedEventArgs e) [0x00018] in /Users/builder/jenkins/workspace/archive-mono/2020-02/android/release/external/corefx/src/System.ObjectModel/src/System/Collections/ObjectModel/ObservableCollection.cs:263
at Xamarin.CommunityToolkit.ObjectModel.ObservableRangeCollection`1[T].RaiseChangeNotificationEvents (System.Collections.Specialized.NotifyCollectionChangedAction action, System.Collections.Generic.List`1[T] changedItems, System.Int32 startingIndex) [0x00039] in <0e226e856d614438a084204b98adfccf>:0
at Xamarin.CommunityToolkit.ObjectModel.ObservableRangeCollection`1[T].AddRange (System.Collections.Generic.IEnumerable`1[T] collection, System.Collections.Specialized.NotifyCollectionChangedAction notificationMode) [0x00061] in <0e226e856d614438a084204b98adfccf>:0