We've got a CollectionView which shows a list of grouped items (grouping can be by date or other values - but date is the default).
The CollectionView items source is bound to an observable collection, and when the viewmodel saw an item removed from the observable collection, the Telerik control crashed. We've seen instances of this app crash on Android (the same control hasn't been released to other platforms yet). We do not have reproduction steps as this is a rare issue, but it feels like it is worth communicating as you might be able to spot what is going on from your end.
System.ArgumentException: Arg_MustBeDateTime at int DateTime.CompareTo(object value)() at int Comparer.Compare(object a, object b)() at int SortFieldComparer.Compare(object o1, object o2)() at int ArraySortHelper<object>.InternalBinarySearch(object[], int, int, object, IComparer<object>)() at int ArraySortHelper<object>.BinarySearch(object[], int, int, object, IComparer<object>)()
System.InvalidOperationException: InvalidOperation_IComparerFailed at int ArraySortHelper<object>.BinarySearch(object[], int, int, object, IComparer<object>)() at int Array.BinarySearch<object>(object[] array, int index, int length, object value, IComparer<object> comparer)() at int List<object>.BinarySearch(int, int, object, IComparer<object>) x 2() at int Group.IndexOf(object item, IComparer<object> sortComparer)() at Tuple<Group, int> ParallelDataEngine.FindGroupAndItemIndex(IValueProvider valueProvider, Group rowRootGroup, object item, int index, bool exhaustiveSearch, bool canUseComparer)() at AddRemoveItemResult ParallelDataEngine.RemoveItem(IAggregateResultProvider aggregateResultProvider, IValueProvider valueProvider, Group rowRootGroup, Group columnRootGroup, object item, int index, bool exhaustiveSearch, bool canUseComparer)() at List<AddRemoveResult> ParallelDataEngine.Process(int index, IEnumerable items, bool remove, bool removeFilteredItem, bool canUseComparer)() at List<AddRemoveResult> ParallelDataEngine.Telerik.Maui.Data.IDataEngine.RemoveItems(int index, IEnumerable items, bool removeFilteredItem, bool canUseComparer)() at List<AddRemoveResult> LocalDataSourceProvider.RemoveItems(int oldStartingIndex, IList oldItems, NotifyCollectionChangedEventArgs e, bool doExhaustiveSearch, bool canUseComparer)() at void LocalDataSourceProvider.ProcessCollectionChanged(NotifyCollectionChangedEventArgs e)() at void LocalDataSourceProvider.DataView_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)() at void EnumerableDataSourceView.RaiseCollectionChanged(object sender, NotifyCollectionChangedEventArgs args)() at void EnumerableDataSourceView.ProcessCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)() at void EnumerableDataSourceView.ProcessCollectionChangedOverride(object sender, NotifyCollectionChangedEventArgs args)() at void EnumerableDataSourceView.ProcessPendingCollectionChange()() at void DataProviderBase.RaiseViewChanging(object sender, IList changedItems, CollectionChange action)() at void LocalDataSourceProvider.DataView_CollectionChanging(object sender, NotifyCollectionChangedEventArgs e)() at void EnumerableDataSourceView.RaiseCollectionChanging(object sender, NotifyCollectionChangedEventArgs args)() at void EnumerableDataSourceView.HandleCollectionChangedOverride(object sender, NotifyCollectionChangedEventArgs e)() at void EnumerableDataSourceView.Telerik.Maui.IWeakEventListener.ReceiveEvent(object sender, object args)() at void WeakEventHandlerList<NotifyCollectionChangedEventArgs>.ProcessEvent(object sender, object args)() at void WeakEventHandlerList<NotifyCollectionChangedEventArgs>.OnCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)() at void ObservableCollection<IWorkItemListItem>.OnCollectionChanged(NotifyCollectionChangedEventArgs) x 2() at void ObservableCollection<IWorkItemListItem>.RemoveItem(int)() at bool Collection<IWorkItemListItem>.Remove(IWorkItemListItem)()
any ideas on what might be going on here?