void HandleSelection(UICollectionView collectionView, NSIndexPath indexPath, bool selected) { var info = Handler?.PositionalViewSelector?.GetInfo(indexPath.Section, (int)indexPath.Item); if ((info?.Kind ?? PositionKind.Header) == PositionKind.Item) { var itemPos = new ItemPosition(info.SectionIndex, info.ItemIndex); if (selected) { Handler?.VirtualView?.SetSelected(itemPos); } else { Handler?.VirtualView?.SetDeselected(itemPos); } var cell = Handler?.GetCell(indexPath); if (cell?.PositionInfo != null) { cell.PositionInfo.IsSelected = selected; } } }
public override RecyclerView.ViewHolder OnCreateViewHolder(ViewGroup parent, int viewType) { var viewHolder = new RvItemHolder(handler.MauiContext); clickListener = new RvViewHolderClickListener(viewHolder, rvh => { if (rvh.PositionInfo == null || rvh.PositionInfo.Kind != PositionKind.Item) { return; } var p = new ItemPosition(rvh.PositionInfo.SectionIndex, rvh.PositionInfo.ItemIndex); rvh.PositionInfo.IsSelected = !rvh.PositionInfo.IsSelected; if (rvh.PositionInfo.IsSelected) { handler.VirtualView?.SetSelected(p); } else { handler.VirtualView?.SetDeselected(p); } }); viewHolder.ItemView.SetOnClickListener(clickListener); return(viewHolder); }