protected void NotifyCollectionChanged(object sender, NotifyKeyGroupCollectionChangedEventArgs <TKey, TItem> e) { NSThreadExtensions.ExecuteOnMainThread(() => { IosDataSourceHandler.Handle(_tableViewRef.Target, e); }); }
public void Handle(NotifyKeyGroupCollectionChangedEventArgs <TKey, TItem> arg) { switch (arg.Action) { case NotifyCollectionChangedAction.Reset: HandleGroupsReset(); break; case NotifyCollectionChangedAction.Replace: HandleGroupsReplace(arg); break; default: if (BatchAction == null) { Update(arg); } else { BatchAction.Invoke(() => Update(arg)); } break; } }
protected override void HandleGroupsRemove(NotifyKeyGroupCollectionChangedEventArgs <TKey, TItem> args) { foreach (var range in args.OldItemRanges) { Enumerable.Range(range.Index, range.OldItems.Count()) .Apply(RemoveSection); } }
public static void Handle <TKey, TItem>( UITableView tableView, NotifyKeyGroupCollectionChangedEventArgs <TKey, TItem> args) { var handler = new IosTableObservableKeyGroupCollectionHandler <TKey, TItem>(tableView); handler.Handle(args); }
protected override void HandleGroupsRemove(NotifyKeyGroupCollectionChangedEventArgs <TKey, TItem> args) { foreach (var sectionsRange in args.OldItemRanges) { int sectionIndex = sectionsRange.Index; foreach (var section in sectionsRange.OldItems) { _collectionViewRef.Target?.DeleteSections(NSIndexSet.FromIndex(sectionIndex)); sectionIndex++; } } }
protected override void HandleGroupsAdd(NotifyKeyGroupCollectionChangedEventArgs <TKey, TItem> args) { foreach (var sectionsRange in args.NewItemRanges) { int sectionIndex = sectionsRange.Index; foreach (var section in sectionsRange.NewItems) { _tableViewRef.Target?.InsertSections(NSIndexSet.FromIndex(sectionIndex), UITableViewRowAnimation.Automatic); sectionIndex++; } } }
public static void Handle <TKey, TItem>( RecyclerView.Adapter adapter, IEnumerable <IGrouping <TKey, TItem> > dataSource, IList <FlatItem> flatMapping, bool withSectionHeader, bool withSectionFooter, NotifyKeyGroupCollectionChangedEventArgs <TKey, TItem> args) { var handler = new DroidRecyclerObservableKeyGroupCollectionHandler <TKey, TItem>( adapter, dataSource, flatMapping, withSectionHeader, withSectionFooter); handler.Handle(args); }
private void Update(NotifyKeyGroupCollectionChangedEventArgs <TKey, TItem> e) { switch (e.Action) { case NotifyCollectionChangedAction.Add: HandleGroupsAdd(e); break; case NotifyCollectionChangedAction.Remove: HandleGroupsRemove(e); break; case NotifyCollectionChangedAction.Replace: HandleGroupsReplace(e); break; } if (e.GroupEvents != null) { foreach (var groupEvent in e.GroupEvents) { switch (groupEvent.Arg.Action) { case NotifyCollectionChangedAction.Add: HandleItemsAdd(groupEvent.GroupIndex, groupEvent.Arg); break; case NotifyCollectionChangedAction.Remove: HandleItemsRemove(groupEvent.GroupIndex, groupEvent.Arg); break; case NotifyCollectionChangedAction.Reset: HandleItemsReset(groupEvent.GroupIndex); break; } } } }
private void CatchEvents(object sender, NotifyKeyGroupCollectionChangedEventArgs <TKey, TValue> e) { _events.Add(e); }
protected virtual void NotifyCollectionChanged(object sender, NotifyKeyGroupCollectionChangedEventArgs <TKey, TItem> e) { BuildPlainList(); NotifyOnMainThread(); }
protected abstract void HandleGroupsReplace(NotifyKeyGroupCollectionChangedEventArgs <TKey, TItem> args);
protected override void HandleGroupsReplace(NotifyKeyGroupCollectionChangedEventArgs <TKey, TItem> args) { _collectionViewRef.Target?.ReloadData(); }
protected override void HandleGroupsReplace(NotifyKeyGroupCollectionChangedEventArgs <TKey, TItem> args) { _recyclerViewAdapterRef.Target?.NotifyDataSetChanged(); }