public static CollectionViewSource <T> CreateForCollection <T>(string reuseIdentifier, IList <T> dataSource,
                                                                UICollectionView collectionView,
                                                                ICollectionViewSourceDelegate <T> del   = null,
                                                                ICrossCellViewHolder <T> crossCellModel = null, bool register = false,
                                                                Tuple <int, int> widthCountCell         = default(Tuple <int, int>))
 {
     return(new CollectionViewSourceInternal <T>(reuseIdentifier, dataSource, collectionView, del, crossCellModel, register, widthCountCell));
 }
            public CollectionViewSourceInternal(string reuseIdentifier, IList <T> dataSource,
                                                UICollectionView collectionView, ICollectionViewSourceDelegate <T> del,
                                                ICrossCellViewHolder <T> crossCellModel = null,
                                                bool register = false, Tuple <int, int> centreCell = default(Tuple <int, int>))
                : base(dataSource, collectionView)
            {
                _reuseIdentifier = reuseIdentifier;
                _del             = del;
                _crossCellModel  = crossCellModel;
                _collectionView  = collectionView;
                _centreCell      = centreCell;

                if (register)
                {
                    collectionView?.RegisterNibForCell(UINib.FromName(reuseIdentifier, NSBundle.MainBundle), reuseIdentifier);
                }
            }
 public static CollectionViewSource <T> CreateForCollection <T>(string reuseIdentifier, IList <T> dataSource,
                                                                ICollectionViewSourceDelegate <T> del = null)
 {
     return(CreateForCollection(reuseIdentifier, dataSource, null, del));
 }