예제 #1
0
        public void ICV_OneItemTwoGroups3()
        {
            var o      = new object();
            var source = new CollectionViewSource {
                Source = new[] { o }
            };
            var group = new ConcretePropertyGroupDescription {
                GroupNameFromItemFunc = (item, level, culture) => new[] { "First", "Second" }
            };

            var box = new ListBox {
                ItemsSource = source.View
            };

            CreateAsyncTest(box,
                            () => {
                box.ApplyTemplate();
            }, () => {
                source.GroupDescriptions.Add(group);
                Assert.AreEqual(2, box.Items.Count, "#1");
                Assert.AreEqual(o, box.Items[0], "#2");
                Assert.AreEqual(o, box.Items[1], "#3");

                Assert.IsNull(box.ItemContainerGenerator.ContainerFromIndex(0), "#4");
            }, () => {
                Assert.IsNotNull(box.ItemContainerGenerator.ContainerFromIndex(0), "#5");
                Assert.AreNotSame(box.ItemContainerGenerator.ContainerFromIndex(0), box.ItemContainerGenerator.ContainerFromIndex(1), "#6");
            }
                            );
        }
예제 #2
0
        public void ICV_OneItemTwoGroups_Remove()
        {
            var o      = new object();
            var source = new CollectionViewSource {
                Source = new List <Object> {
                    o
                }
            };
            var group = new ConcretePropertyGroupDescription {
                GroupNameFromItemFunc = (item, level, culture) => new[] { "First", "Second" }
            };

            source.GroupDescriptions.Add(group);
            var box = new ListBox {
                ItemsSource = source.View
            };

            CreateAsyncTest(box,
                            () => {
                box.ApplyTemplate();
            }, () => {
                ((IEditableCollectionView)source.View).RemoveAt(0);
                Assert.AreEqual(0, box.Items.Count, "#1");
            }
                            );
        }