public void CannotSortTest()
        {
            List<TestClass> intList = new List<TestClass>() { new TestClass() };
            PagedCollectionView pcv = new PagedCollectionView(intList);

            // we are not allowed to sort during an edit operation
            pcv.EditItem(pcv[0]);
            PagedCollectionViewTest.AssertExpectedException(
                new InvalidOperationException(string.Format(CultureInfo.InvariantCulture, PagedCollectionViewResources.OperationNotAllowedDuringAddOrEdit, "Sorting")),
                delegate
                {
                    pcv.SortDescriptions.Clear();
                });
            pcv.CommitEdit();

            // we are not allowed to sort during an add new operation
            pcv.AddNew();
            PagedCollectionViewTest.AssertExpectedException(
                new InvalidOperationException(string.Format(CultureInfo.InvariantCulture, PagedCollectionViewResources.OperationNotAllowedDuringAddOrEdit, "Sorting")),
                delegate
                {
                    pcv.SortDescriptions.Clear();
                });
        }
        public void CannotChangePageSize()
        {
            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(PagedCollectionViewResources.ChangingPageSizeNotAllowedDuringAddOrEdit),
                delegate
                {
                    pcv.PageSize = 10;
                });
            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(PagedCollectionViewResources.ChangingPageSizeNotAllowedDuringAddOrEdit),
                delegate
                {
                    pcv.PageSize = 10;
                });
        }
        public void CannotRefreshTest()
        {
            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, "Refresh")),
                delegate
                {
                    pcv.Refresh();
                });
            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, "Refresh")),
                delegate
                {
                    pcv.Refresh();
                });
        }
        public void EditInPagedCollectionViewBeforeEditingInDataForm()
        {
            PagedCollectionView pcv = new PagedCollectionView(DataClassList.GetDataClassList(3, ListOperations.All));
            pcv.EditItem(pcv.CurrentItem);
            DataClass dataClass = pcv.CurrentItem as DataClass;
            dataClass.StringProperty = "new string 1";

            this.DataForm.CurrentItem = null;
            this.DataForm.ItemsSource = pcv;

            this.AddToPanelAndWaitForLoad();

            this.EnqueueCallback(() =>
            {
                this.ExpectContentLoaded();
                this.DataForm.BeginEdit();
            });

            this.WaitForContentLoaded();

            this.EnqueueCallback(() =>
            {
                this.GetInputControls();
                this.textBox.Text = "new string 2";
                this.CommitAllFields();
                this.ExpectEditEnded();
                this.DataForm.CancelEdit();
            });

            this.WaitForEditEnded();

            this.EnqueueCallback(() =>
            {
                this.GetInputControls();
                Assert.AreEqual("test string 0", this.textBox.Text);
            });

            this.EnqueueTestComplete();
        }