public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position) { var item = _plainItems[position]; if (item.IsHeader) { _bindHeaderViewHolderAction(holder, position, item.Key); } else { var isLast = true; var nextPosition = position + 1; if (nextPosition > 0 && nextPosition < _plainItems.Count) { var nextItem = _plainItems[nextPosition]; isLast = nextItem.IsHeader; } _bindViewHolderAction(holder, position, item.Item, isLast); } if (position == _plainItems.Count - 1) { LastItemRequested?.Invoke(this, EventArgs.Empty); } }
public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath) { var item = GetItemByIndex(indexPath); if (indexPath.Section == DataSource.Count() - 1 && indexPath.Row == DataSource.ElementAt(indexPath.Section).Count() - 1) { LastItemRequested?.Invoke(this, EventArgs.Empty); } return(GetItemCell(tableView, item, DataSource.ElementAt(indexPath.Section).ToList(), indexPath)); }
public override void WillDisplayNodeForRowAtIndexPath(ASTableView tableView, NSIndexPath indexPath) { if (_source == null) { var table = tableView as ASTableView; _source = table.TableNode.DataSource as GroupedTableDataSource <DateTimeOffset, ChatMessageViewModel>; } var count = _source.DataSource[0].Count; if (indexPath.Section == _source.DataSource.Count - 1 && indexPath.Row == count - 1) { LastItemRequested?.Invoke(this, EventArgs.Empty); } }
public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath) { var item = GetItemByIndex(indexPath); if (IsLastItem(indexPath)) { LastItemRequested?.Invoke(this, EventArgs.Empty); } var itemCell = tableView.DequeueReusableCell(GetCellName(indexPath), indexPath); var bindableView = (IBindableView)itemCell; bindableView.ReloadDataContext(item); return(itemCell); }
private void TryToRaiseLastItemRequest() { LastItemRequested?.Invoke(this, EventArgs.Empty); }