protected virtual void UpdateEmptyView()
        {
            if (ItemsViewAdapter == null || ItemsView == null)
            {
                return;
            }

            var emptyView         = ItemsView?.EmptyView;
            var emptyViewTemplate = ItemsView?.EmptyViewTemplate;

            if (emptyView != null || emptyViewTemplate != null)
            {
                if (_emptyViewAdapter == null)
                {
                    _emptyViewAdapter = new EmptyViewAdapter(ItemsView);
                }

                _emptyViewAdapter.EmptyView         = emptyView;
                _emptyViewAdapter.EmptyViewTemplate = emptyViewTemplate;

                _emptyCollectionObserver.Start(ItemsViewAdapter);
            }
            else
            {
                _emptyCollectionObserver.Stop(ItemsViewAdapter);
            }

            UpdateEmptyViewVisibility();
        }
Exemple #2
0
        protected virtual void UpdateItemsUpdatingScrollMode()
        {
            if (ItemsViewAdapter == null || ItemsView == null)
            {
                return;
            }

            if (ItemsView.ItemsUpdatingScrollMode == ItemsUpdatingScrollMode.KeepItemsInView)
            {
                // Keeping the current items in view is the default, so we don't need to watch for data changes
                _itemsUpdateScrollObserver.Stop(ItemsViewAdapter);
            }
            else
            {
                _itemsUpdateScrollObserver.Start(ItemsViewAdapter);
            }
        }
Exemple #3
0
        protected virtual void UpdateEmptyView()
        {
            if (ItemsViewAdapter == null || ItemsView == null)
            {
                return;
            }

            var emptyView         = ItemsView?.EmptyView;
            var emptyViewTemplate = ItemsView?.EmptyViewTemplate;

            if (emptyView != null || emptyViewTemplate != null)
            {
                if (_emptyViewAdapter == null)
                {
                    _emptyViewAdapter = new EmptyViewAdapter(ItemsView);
                }

                if (ItemsView is StructuredItemsView structuredItemsView)
                {
                    _emptyViewAdapter.Header         = structuredItemsView.Header;
                    _emptyViewAdapter.HeaderTemplate = structuredItemsView.HeaderTemplate;

                    _emptyViewAdapter.Footer         = structuredItemsView.Footer;
                    _emptyViewAdapter.FooterTemplate = structuredItemsView.FooterTemplate;
                }

                _emptyViewAdapter.EmptyView         = emptyView;
                _emptyViewAdapter.EmptyViewTemplate = emptyViewTemplate;

                _emptyCollectionObserver.Start(ItemsViewAdapter);

                _emptyViewAdapter.NotifyDataSetChanged();
            }
            else
            {
                _emptyCollectionObserver.Stop(ItemsViewAdapter);
            }

            UpdateEmptyViewVisibility();
        }