Ejemplo n.º 1
0
        public void Test_AdvancedCollectionView_Combined_Using_Shaping_Changing_Properties()
        {
            var personLorem = new Person()
            {
                Name = "lorem",
                Age  = 4
            };

            var l = new ObservableCollection <Person>
            {
                personLorem,
                new Person()
                {
                    Name = "imsum",
                    Age  = 8
                },
                new Person()
                {
                    Name = "dolor",
                    Age  = 15
                },
                new Person()
                {
                    Name = "sit",
                    Age  = 16
                },
                new Person()
                {
                    Name = "amet",
                    Age  = 23
                },
                new Person()
                {
                    Name = "consectetur",
                    Age  = 42
                },
            };

            var a = new AdvancedCollectionView(l, true)
            {
                SortDescriptions =
                {
                    new SortDescription(nameof(Person.Age), SortDirection.Descending)
                },
                Filter = (x) => ((Person)x).Name.Length > 5
            };

            a.ObserveFilterProperty(nameof(Person.Name));

            Assert.AreEqual(42, ((Person)a.First()).Age);
            Assert.AreEqual(1, a.Count);

            personLorem.Name = "lorems";
            personLorem.Age  = 96;

            Assert.AreEqual(96, ((Person)a.First()).Age);
            Assert.AreEqual(2, a.Count);
        }
Ejemplo n.º 2
0
        public void Test_AdvancedCollectionView_Sorting()
        {
            var l = new ObservableCollection <Person>
            {
                new Person()
                {
                    Name = "lorem",
                    Age  = 4
                },
                new Person()
                {
                    Name = "imsum",
                    Age  = 8
                },
                new Person()
                {
                    Name = "dolor",
                    Age  = 15
                },
                new Person()
                {
                    Name = "sit",
                    Age  = 16
                },
                new Person()
                {
                    Name = "amet",
                    Age  = 23
                },
                new Person()
                {
                    Name = "consectetur",
                    Age  = 42
                },
            };

            var a = new AdvancedCollectionView(l)
            {
                SortDescriptions =
                {
                    new SortDescription(nameof(Person.Age), SortDirection.Descending)
                }
            };

            Assert.AreEqual(((Person)a.First()).Age, 42);
        }
Ejemplo n.º 3
0
        public void Test_AdvancedCollectionView_Sorting_CustomComparable()
        {
            var l = new ObservableCollection <Person>
            {
                new Person()
                {
                    Name = "lorem",
                    Age  = 4
                },
                new Person()
                {
                    Name = "imsum",
                    Age  = 8
                },
                new Person()
                {
                    Name = "dolor",
                    Age  = 15
                },
                new Person()
                {
                    Name = "sit",
                    Age  = 16
                },
                new Person()
                {
                    Name = "amet",
                    Age  = 23
                },
                new Person()
                {
                    Name = "consectetur",
                    Age  = 42
                },
            };

            var a = new AdvancedCollectionView(l)
            {
                SortDescriptions =
                {
                    new SortDescription(nameof(Person.Age), SortDirection.Ascending, new DelegateComparable((x, y) => - ((int)x).CompareTo((int)y)))
                }
            };

            Assert.AreEqual(((Person)a.First()).Age, 42);
        }
Ejemplo n.º 4
0
        public void Test_AdvancedCollectionView_Sorting_OnSelf_CustomComparable_With_Shaping()
        {
            var l = new ObservableCollection <Person>
            {
                new Person()
                {
                    Name = "lorem",
                    Age  = 4
                },
                new Person()
                {
                    Name = "imsum",
                    Age  = 8
                },
                new Person()
                {
                    Name = "dolor",
                    Age  = 15
                },
                new Person()
                {
                    Name = "sit",
                    Age  = 16
                },
                new Person()
                {
                    Name = "amet",
                    Age  = 23
                },
                new Person()
                {
                    Name = "consectetur",
                    Age  = 42
                },
            };

            var a = new AdvancedCollectionView(l, true)
            {
                SortDescriptions =
                {
                    new SortDescription(SortDirection.Ascending, new DelegateComparable((x, y) => - ((Person)x).Age.CompareTo(((Person)y).Age)))
                }
            };

            Assert.AreEqual(42, ((Person)a.First()).Age);
        }
Ejemplo n.º 5
0
        public void Test_AdvancedCollectionView_Using_Shaping()
        {
            var myPerson = new Person()
            {
                Name = "lorem",
                Age  = 4
            };
            var l = new ObservableCollection <Person>
            {
                myPerson,
                new Person()
                {
                    Name = "imsum",
                    Age  = 8
                },
            };

            var a = new AdvancedCollectionView(l, true);

            myPerson.Name = "myName";

            Assert.AreEqual("myName", ((Person)a.First()).Name);
            Assert.AreEqual(2, a.Count);
        }
Ejemplo n.º 6
0
        public void Test_AdvancedCollectionView_Combined()
        {
            var l = new ObservableCollection <Person>
            {
                new Person()
                {
                    Name = "lorem",
                    Age  = 4
                },
                new Person()
                {
                    Name = "imsum",
                    Age  = 8
                },
                new Person()
                {
                    Name = "dolor",
                    Age  = 15
                },
                new Person()
                {
                    Name = "sit",
                    Age  = 16
                },
                new Person()
                {
                    Name = "amet",
                    Age  = 23
                },
                new Person()
                {
                    Name = "consectetur",
                    Age  = 42
                },
            };

            var a = new AdvancedCollectionView(l)
            {
                SortDescriptions =
                {
                    new SortDescription(nameof(Person.Age), SortDirection.Descending)
                },
                Filter = (x) => ((Person)x).Name.Length > 5
            };

            Assert.AreEqual(((Person)a.First()).Age, 42);
            Assert.AreEqual(a.Count, 1);

            l.Add(new Person
            {
                Name = "foo",
                Age  = 50
            });

            l.Add(new Person
            {
                Name = "Person McPersonface",
                Age  = 10
            });

            Assert.AreEqual(((Person)a.First()).Age, 42);
            Assert.AreEqual(a.Count, 2);
        }
Ejemplo n.º 7
0
        public void Test_AdvancedCollectionView_Combined_Using_Shaping_Filter_Back_In()
        {
            var l = new ObservableCollection <Person>
            {
                new Person()
                {
                    Name = "lorem",
                    Age  = 4
                },
                new Person()
                {
                    Name = "imsum",
                    Age  = 8
                },
                new Person()
                {
                    Name = "dolor",
                    Age  = 15
                },
                new Person()
                {
                    Name = "sit",
                    Age  = 16
                },
                new Person()
                {
                    Name = "amet",
                    Age  = 23
                },
                new Person()
                {
                    Name = "consectetur",
                    Age  = 42
                },
            };

            var a = new AdvancedCollectionView(l, true);

            a.Filter = (x) => ((Person)x).Name.Length > 5;
            a.RefreshFilter();

            a.Filter = (x) => ((Person)x).Name.Length > 4;
            a.RefreshFilter();

            a.SortDescriptions.Add(new SortDescription(nameof(Person.Age), SortDirection.Descending));

            Assert.AreEqual(42, ((Person)a.First()).Age);
            Assert.AreEqual(4, a.Count);

            l.Add(new Person
            {
                Name = "foo",
                Age  = 50
            });

            l.Add(new Person
            {
                Name = "Person McPersonface",
                Age  = 10
            });

            Assert.AreEqual(42, ((Person)a.First()).Age);
            Assert.AreEqual(5, a.Count);
        }