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.DataContext(), SelectedItem))
                {
                    return(true);
                }
                return(selected && SelectedItem == null);
            }
            return(selected);
        }
        public virtual void OnCellSelectionChanged(UICollectionViewCell cell, bool selected, bool setFromBinding)
        {
            var collectionView = CollectionView;

            if (!setFromBinding || collectionView == null)
            {
                return;
            }
            UpdateSelectedItemInternal(collectionView, cell.DataContext(), 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 void OnCellSelectionChanged(UICollectionViewCell cell, bool selected, bool setFromBinding)
 {
     var collectionView = CollectionView;
     if (!setFromBinding || collectionView == null)
         return;
     UpdateSelectedItemInternal(collectionView, cell.DataContext(), 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.DataContext(), SelectedItem))
                    return true;
                return selected && SelectedItem == null;
            }
            return selected;
        }