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); }
public RvViewHolderClickListener(RvItemHolder viewHolder, Action <RvItemHolder> clickHandler) { ViewHolder = viewHolder; ClickHandler = clickHandler; }