Under Review
Last Updated: 06 Jun 2025 16:24 by ADMIN
Created by: Nico
Comments: 3
Category: CollectionView
Type: Bug Report
0

I see iOS crashes in Sentry, seems like caused by clearing the RadCollectionView bound DataSource ObservableCollection, when an item was previously selected

Maui 9.0.70
Telerik 11.0

System.NullReferenceException: Arg_NullReferenceException
  ?, in void RadCollectionViewItemView.OnIsSelectedChanged()
  ?, in static RadCollectionViewItemView()+(BindableObject b, object o, object n) => { }
  ?, in void BindableObject.OnBindablePropertySet(BindableProperty property, object original, object value, bool didChange, bool willFirePropertyChanged)
  ?, in void Element.OnBindablePropertySet(BindableProperty property, object original, object value, bool changed, bool willFirePropertyChanged)
  ?, in void BindableObject.SetValueActual(BindableProperty property, BindablePropertyContext context, object value, bool currentlyApplying, SetValueFlags attributes, SetterSpecificity specificity, bool silent)
  ?, in void BindableObject.SetValueCore(BindableProperty property, object value, SetValueFlags attributes, SetValuePrivateFlags privateAttributes, SetterSpecificity specificity)
  ?, in void BindableObject.SetValue(BindableProperty property, object value)
  ?, in void RadCollectionViewItemView.set_IsSelected(bool value)
  ?, in void RadCollectionView.SelectContainers(IEnumerable items, bool select)
  ?, in void RadCollectionView.SelectionHelperSelectionChanged(object sender, RadSelectionChangedEventArgs e)
  ?, in void <>c__DisplayClass36_0.<SelectionChangerSelectionChanged>b__0(?)+() => { }
  ?, in void ActiveSelectionScope.Dispose()
  ?, in void SelectionHelper.ClearSelection()
  ?, in void RadCollectionView.Telerik.Maui.Controls.ICollectionView.ItemsChanged(NotifyCollectionChangedEventArgs e)
  ?, in void CollectionViewModel.OnDataProviderViewChanged(object sender, ViewChangedEventArgs e)
  ?, in void DataProviderBase.RaiseViewChanged(object sender, List<AddRemoveResult> changes, NotifyCollectionChangedEventArgs args, CollectionChange action, bool affectsAggregates)
  ?, in void LocalDataSourceProvider.ProcessCollectionChanged(NotifyCollectionChangedEventArgs e)
  ?, in void LocalDataSourceProvider.DataView_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
  ?, in void EnumerableDataSourceView.RaiseCollectionChanged(object sender, NotifyCollectionChangedEventArgs args)
  ?, in void EnumerableDataSourceView.ProcessCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
  ?, in void EnumerableDataSourceView.ProcessCollectionChangedOverride(object sender, NotifyCollectionChangedEventArgs args)
  ?, in void EnumerableDataSourceView.ProcessPendingCollectionChange()
  ?, in void DataProviderBase.RaiseViewChanging(object sender, IList changedItems, CollectionChange action)
  ?, in void LocalDataSourceProvider.DataView_CollectionChanging(object sender, NotifyCollectionChangedEventArgs e)
  ?, in void EnumerableDataSourceView.HandleCollectionChangedOverride(object sender, NotifyCollectionChangedEventArgs e)
  ?, in void EnumerableDataSourceView.Telerik.Maui.IWeakEventListener.ReceiveEvent(object sender, object args)
  ?, in void WeakEventHandlerList<NotifyCollectionChangedEventArgs>.ProcessEvent(object sender, object args)
  ?, in void WeakEventHandlerList<NotifyCollectionChangedEventArgs>.OnCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
  ?, in void ObservableCollection<ViewBundle>.OnCollectionChanged(NotifyCollectionChangedEventArgs)
  ?, in void ExtObservableCollection<ViewBundle>.OnCollectionChanged(NotifyCollectionChangedEventArgs e)
  ?, in void ObservableCollection<ViewBundle>.OnCollectionReset()
  ?, in void ObservableCollection<ViewBundle>.ClearItems()
  ?, in void ExtObservableCollection<ViewBundle>.ClearItems()
  ?, in void Collection<ViewBundle>.Clear()
  ?, in void SearchViewViewModel.Dispose(bool disposing)
  ?, in void PropertyChangedNotifyingBase.Dispose()
  ?, in async void ViewBundle.Dispose(bool disposing)
  ?, in void <>c.<ThrowAsync>b__128_0(?)+(object state) => { }
  ?, in void NSAsyncSynchronizationContextDispatcher.Apply()
  ?, in void __Registrar_Callbacks__.callback_3311_Foundation_NSAsyncSynchronizationContextDispatcher_Apply(IntPtr pobj, IntPtr sel, IntPtr* exception_gchandle)