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"); } ); }
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"); } ); }