Esempio n. 1
0
        public async Task When_Collection_Reset()
        {
            var count = 0;
            var panel = new StackPanel();

            var SUT = new ItemsControl()
            {
                ItemsPanelRoot         = panel,
                ItemContainerStyle     = BuildBasicContainerStyle(),
                InternalItemsPanelRoot = panel,
                ItemTemplate           = new DataTemplate(() =>
                {
                    count++;
                    return(new Border());
                })
            };

            SUT.ApplyTemplate();

            var c = new ObservableCollectionEx <string>();

            c.Add("One");
            c.Add("Two");
            c.Add("Three");

            SUT.ItemsSource = c;
            Assert.AreEqual(count, 3);

            Assert.AreEqual(SUT.Items.Count, 3);

            using (c.BatchUpdate())
            {
                c.Add("Four");
                c.Add("Five");
            }

            Assert.AreEqual(SUT.Items.Count, 5);
            Assert.AreEqual(count, 5);
            Assert.IsNotNull(SUT.ContainerFromItem("One"));
            Assert.IsNotNull(SUT.ContainerFromItem("Four"));
            Assert.IsNotNull(SUT.ContainerFromItem("Five"));
        }