Ejemplo n.º 1
0
        public iOSViewSource(HorizontalListView element, HashSet <DataTemplate> dataTemplates)
        {
            _weakElement   = new WeakReference <HorizontalListView>(element);
            _createdCells  = new Dictionary <long, WeakReference <iOSViewCell> >();
            _dataTemplates = dataTemplates;

            var elementItemsSource = element.ItemsSource;

            _dataSource = elementItemsSource?.Cast <object>().ToList();

            if (_dataSource == null)
            {
                return;
            }

            _multipleCellTemplates = _dataTemplates?.Any() ?? false;

            if (!_multipleCellTemplates)
            {
                // Cache only support single DataTemplate
                _viewCellHolderCellHolderQueue = new UIViewCellHolderQueue(
                    element.ViewCacheSize,
                    () => CreateViewCellHolder());
                _viewCellHolderCellHolderQueue.Build();
            }
        }
        public iOSViewSource(HorizontalListView element)
        {
            _element = element;

            var elementItemsSource = _element.ItemsSource;

            _dataSource = elementItemsSource?.Cast <object>().ToList();

            if (_dataSource == null)
            {
                return;
            }

            _viewCellHolderCellHolderQueue = new UIViewCellHolderQueue(element.ViewCacheSize, CreateViewCellHolder);
            _viewCellHolderCellHolderQueue.Build();
        }
        public iOSViewSource(HorizontalListView element)
        {
            _weakElement = new WeakReference <HorizontalListView>(element);

            var elementItemsSource = element.ItemsSource;

            _dataSource = elementItemsSource?.Cast <object>().ToList();

            if (_dataSource == null)
            {
                return;
            }

            if (!(element.ItemTemplate is DataTemplateSelector))
            {
                // Cache only support single DataTemplate
                _viewCellHolderCellHolderQueue = new UIViewCellHolderQueue(
                    element.ViewCacheSize,
                    () => CreateViewCellHolder());
                _viewCellHolderCellHolderQueue.Build();
            }
        }