GetCell is not getting called on device. But works fine on Simulator
<p>I have a CollectionView created from story board now. If i run the application from simulator everything works fine. If I run same application on Device the Get cell method never get called and cell never appears.</p>

<p>This is my collectionView from ViewController</p>

<pre><code>//Current MonthyBox CollectionView Settings 
                CurrentMonthlyBoxCollectionView.PagingEnabled = true;
                CurrentMonthlyBoxCollectionView.BackgroundColor = UIColor.Clear;
                CurrentMonthlyBoxCollectionView.SetCollectionViewLayout(new UICollectionViewFlowLayout(), true);
                ((UICollectionViewFlowLayout)CurrentMonthlyBoxCollectionView.CollectionViewLayout).ScrollDirection = UICollectionViewScrollDirection.Horizontal;
                ((UICollectionViewFlowLayout)CurrentMonthlyBoxCollectionView.CollectionViewLayout).MinimumInteritemSpacing = 10000.0f;
                CurrentMonthlyBoxCollectionView.Source = new CurrentMonthlyBoxCollectionViewSource(Vm);
</code></pre>

<p>This is my colection View Source</p>

<pre><code>class CurrentMonthlyBoxCollectionViewSource : UICollectionViewSource
    {
        List&lt;MonthlyBoxModel&gt; CurrentBoxList;
        DashboardViewModel DashboardModel;
        public CurrentMonthlyBoxCollectionViewSource(List&lt;MonthlyBoxModel&gt; CurrentBoxList)
        {
            this.CurrentBoxList = CurrentBoxList;
        }
        public CurrentMonthlyBoxCollectionViewSource(DashboardViewModel model)
        {
            this.DashboardModel = model;
        }

        public override nint NumberOfSections(UICollectionView collectionView)
        {
            return 1;
        }
        public override nint GetItemsCount(UICollectionView collectionView, nint section)
        {
            return 1;
        }
        public override void ItemSelected(UICollectionView collectionView, NSIndexPath indexPath)
        {
            DashboardModel.NavigateToNextPage(DashboardModel.Model);
        }
        public override UICollectionViewCell GetCell(UICollectionView collectionView, NSIndexPath indexPath)
        {
            //Create a new cell 
            CurrentMonthlyBoxCollectionViewCell cell = (CurrentMonthlyBoxCollectionViewCell)collectionView.DequeueReusableCell("CurrentMonthlyBoxCollectionViewCell", indexPath);
            cell.setValuesForCurrentCell(DashboardModel);
            return cell;
        }
        [Export("collectionView:layout:sizeForItemAtIndexPath:")]
        public virtual SizeF SizeForItemAtIndexPath(UICollectionView collectionView, UICollectionViewLayout layout, NSIndexPath indexPath)
        {
            return new SizeF((float)collectionView.Frame.Width, 100f);
        }
    }
}
</code></pre>

<p>I don't know what is going wrong</p>

<p><strong>UPDATE :</strong> </p>

<p>According to xamarin documentation "delegate" and "datasource" both are handled using "source" 
But, When we use flow layout and choose to select custom size for collection view cell. We have to inherit from UICollectionViewFlowLayout
and set delegate to class from UICollectionViewFlowLayout handle
all delegate related code to that class.</p>

<p>IN short now my collection view code is like following</p>

<pre><code>CurrentMonthlyBoxCollectionView.PagingEnabled = true;
                CurrentMonthlyBoxCollectionView.BackgroundColor = UIColor.Clear;
                CurrentMonthlyBoxCollectionView.SetCollectionViewLayout(new UICollectionViewFlowLayout(), true);
                ((UICollectionViewFlowLayout)CurrentMonthlyBoxCollectionView.CollectionViewLayout).ScrollDirection = UICollectionViewScrollDirection.Horizontal;
                ((UICollectionViewFlowLayout)CurrentMonthlyBoxCollectionView.CollectionViewLayout).MinimumInteritemSpacing = 10000.0f;
                CurrentMonthlyBoxCollectionView.Source = new CurrentMonthlyBoxCollectionViewSource(Vm);
                **CurrentMonthlyBoxCollectionView.Delegate = new CurrentMonthlyBoxCollectionViewDelegate(Vm);**
</code></pre>

<p>And I added new class</p>

<pre><code>internal class CurrentMonthlyBoxCollectionViewDelegate : UICollectionViewDelegateFlowLayout
    {
        DashboardViewModel DashboardModel;
        public CurrentMonthlyBoxCollectionViewDelegate(DashboardViewModel DashboardModel)
        {
            this.DashboardModel = DashboardModel;
        }
        public override CGSize GetSizeForItem(UICollectionView collectionView, UICollectionViewLayout layout, NSIndexPath indexPath)
        {
            return new CGSize((float)(collectionView.Frame.Width), (float)(collectionView.Frame.Height));
        }
        public override void ItemSelected(UICollectionView collectionView, NSIndexPath indexPath)
        {
            DashboardModel.NavigateToNextPage(DashboardModel.Model);
        }
    }
</code></pre>

<p>This solved the problem sufficiently and don't forget to delete following method from collectionViewSource</p>

<pre><code>[Export("collectionView:layout:sizeForItemAtIndexPath:")]
            public virtual SizeF SizeForItemAtIndexPath(UICollectionView collectionView, UICollectionViewLayout layout, NSIndexPath indexPath)
            {
                return new SizeF((float)collectionView.Frame.Width, 100f);
            }
</code></pre>