public virtual void OnCellSelectionChanged(UICollectionViewCell cell, bool selected, bool setFromBinding) { var collectionView = CollectionView; if (!setFromBinding || collectionView == null) return; UpdateSelectedItemInternal(collectionView, cell.GetDataContext(), selected); var path = IndexPathForCell(collectionView, cell); if (path == null) return; if (selected) collectionView.SelectItem(path, false, UICollectionViewScrollPosition.None); else collectionView.DeselectItem(path, false); }
public virtual bool UpdateSelectedBindValue(UICollectionViewCell cell, bool selected) { var collectionView = CollectionView; if (collectionView == null || collectionView.AllowsMultipleSelection) return selected; if (!collectionView.AllowsSelection) return false; if (HasMask(cell, InitializingStateMask)) { if (Equals(cell.GetDataContext(), SelectedItem)) return true; return selected && SelectedItem == null; } return selected; }