Ejemplo n.º 1
0
        private void OnItemsSourceChanged()
        {
            addRemoveItemHanlder.Reset();
            _manualSort.Clear();
            ScrollPosition = new Point(ScrollPosition.X, 0);
            if (_view != null)
            {
                _view.VectorChanged -= _view_VectorChanged;
            }
            _view = ItemsSource as ICollectionView;

            _props    = null;
            _itemType = null;
            if (_view == null && ItemsSource != null)
            {
                _view = new UWPCollectionView(ItemsSource);
            }

            // remove old rows, auto-generated columns
            Rows.Clear();
            ClearAutoGeneratedColumns();

            // bind grid to new data source
            if (_view != null)
            {
                // connect event handlers
                _view.VectorChanged += _view_VectorChanged;
                // get list of properties available for binding
                _props = GetItemProperties();
                HanldeOuterScrollViewerWithISupportIncrementalLoading();
                // just in case GetItemProperties changed something
                ClearAutoGeneratedColumns();

                //auto - generate columns
                if (AutoGenerateColumns)
                {
                    using (Columns.DeferNotifications())
                    {
                        GenerateColumns(_props);
                    }
                }

                // initialize non-auto-generated column bindings
                foreach (var col in Columns)
                {
                    if (!col.AutoGenerated)
                    {
                        BindColumn(col);
                    }
                }

                // load rows
                LoadRows();
            }
        }
Ejemplo n.º 2
0
        private void OnItemsSourceChanged()
        {
            _manualSort.Clear();
            ScrollPosition = new Point(ScrollPosition.X, 0);
            if (_view != null)
            {
                _view.VectorChanged -= _view_VectorChanged;
            }
            _view = ItemsSource as ICollectionView;

            _props = null;
            _itemType = null;
            if (_view == null && ItemsSource != null)
            {
                _view = new UWPCollectionView(ItemsSource);
            }

            // remove old rows, auto-generated columns
            Rows.Clear();
            ClearAutoGeneratedColumns();

            // bind grid to new data source
            if (_view != null)
            {
                // connect event handlers
                _view.VectorChanged += _view_VectorChanged;
                // get list of properties available for binding
                _props = GetItemProperties();

                // just in case GetItemProperties changed something
                ClearAutoGeneratedColumns();

                //auto - generate columns
                if (AutoGenerateColumns)
                {
                    using (Columns.DeferNotifications())
                    {
                        GenerateColumns(_props);
                    }
                }

                // initialize non-auto-generated column bindings
                foreach (var col in Columns)
                {
                    if (!col.AutoGenerated)
                    {
                        BindColumn(col);
                    }
                }

                // load rows
                LoadRows();

            }
        }