public void CountTestWithNoItems()
        {
            List<int> intList = new List<int>();
            PagedCollectionView pcv = new PagedCollectionView(intList);
            Assert.AreEqual(0, pcv.Count);

            // update the PageSize and verify that we still have a Count of 0.
            pcv.PageSize = 10;
            Assert.AreEqual(0, pcv.Count);

            // update the PageSize during a DeferRefresh and verify that we still have a Count of 0.
            pcv.PageSize = 0;
            using (pcv.DeferRefresh())
            {
                pcv.PageSize = 10;
                pcv.MoveToPage(1);
            }
            Assert.AreEqual(0, pcv.Count);

            // now try those same tests above with grouping
            pcv.GroupDescriptions.Add(new PropertyGroupDescription(""));
            pcv.PageSize = 0;
            Assert.AreEqual(0, pcv.Count);

            // update the PageSize and verify that we still have a Count of 0.
            pcv.PageSize = 10;
            Assert.AreEqual(0, pcv.Count);

            // update the PageSize during a DeferRefresh and verify that we still have a Count of 0.
            pcv.PageSize = 0;
            using(pcv.DeferRefresh())
            {
                pcv.PageSize = 5;
            }
            Assert.AreEqual(0, pcv.Count);
        }
        public void CannotDeferRefresh()
        {
            ObservableCollection<TestClass> collection = new ObservableCollection<TestClass>() { new TestClass() };
            PagedCollectionView pcv = new PagedCollectionView(collection);

            // show that we will throw an exception if we try to change the PageSize while adding
            pcv.AddNew();
            PagedCollectionViewTest.AssertExpectedException(
                new InvalidOperationException(string.Format(CultureInfo.InvariantCulture, PagedCollectionViewResources.OperationNotAllowedDuringAddOrEdit, "DeferRefresh")),
                delegate
                {
                    pcv.DeferRefresh();
                });
            pcv.CancelNew();

            // show that we will throw an exception if we try to change the PageSize while editing
            pcv.EditItem(pcv[0]);
            PagedCollectionViewTest.AssertExpectedException(
                new InvalidOperationException(string.Format(CultureInfo.InvariantCulture, PagedCollectionViewResources.OperationNotAllowedDuringAddOrEdit, "DeferRefresh")),
                delegate
                {
                    pcv.DeferRefresh();
                });
        }