protected override void DisconnectHandler(UICollectionView nativeView)
        {
            collectionView.DataSource = null;
            dataSource.Dispose();
            dataSource = null;

            collectionView.Delegate = null;
            cvdelegate.Dispose();
            cvdelegate = null;

            collectionView.Dispose();
            collectionView = null;

            layout.Dispose();
            layout = null;

            base.DisconnectHandler(nativeView);
        }
        protected override void ConnectHandler(UICollectionView nativeView)
        {
            base.ConnectHandler(nativeView);

            PositionalViewSelector = new PositionalViewSelector(VirtualView);

            dataSource = new CvDataSource(this);
            dataSource.IsSelectedHandler = (realSection, realIndex) =>
                                           VirtualView?.IsItemSelected(realSection, realIndex) ?? false;

            cvdelegate = new CvDelegate(this);
            //cvdelegate.ScrollHandler = (x, y) =>
            //	VirtualView?.RaiseScrolled(new ScrolledEventArgs(x, y));

            collectionView.AllowsSelection         = VirtualView.SelectionMode != SelectionMode.None;
            collectionView.AllowsMultipleSelection = VirtualView.SelectionMode == SelectionMode.Multiple;
            collectionView.DataSource   = dataSource;
            collectionView.ContentInset = new UIEdgeInsets(0, 0, 0, 0);
            collectionView.Delegate     = cvdelegate;

            collectionView.ReloadData();
        }