// Token: 0x060073D2 RID: 29650 RVA: 0x00212494 File Offset: 0x00210694 private void AddToSubgroups(object item, LiveShapingItem lsi, CollectionViewGroupInternal group, int level, bool loading) { object groupName = this.GetGroupName(item, group.GroupBy, level); if (groupName == CollectionViewGroupRoot.UseAsItemDirectly) { if (lsi != null) { lsi.AddParentGroup(group); } if (loading) { group.Add(item); return; } int index = group.Insert(item, item, this.ActiveComparer); int index2 = group.LeafIndexFromItem(item, index); this.OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Add, item, index2)); return; } else { ICollection collection; if ((collection = (groupName as ICollection)) == null) { this.AddToSubgroup(item, lsi, group, level, groupName, loading); return; } foreach (object name in collection) { this.AddToSubgroup(item, lsi, group, level, name, loading); } return; } }
// add an item to the desired subgroup(s) of the given group void AddToSubgroups(object item, LiveShapingItem lsi, CollectionViewGroupInternal group, int level, bool loading) { object name = GetGroupName(item, group.GroupBy, level); ICollection nameList; if (name == UseAsItemDirectly) { // the item belongs to the group itself (not to any subgroups) if (lsi != null) { lsi.AddParentGroup(group); } if (loading) { group.Add(item); } else { int localIndex = group.Insert(item, item, ActiveComparer); int index = group.LeafIndexFromItem(item, localIndex); OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Add, item, index)); } } else if ((nameList = name as ICollection) == null) { // the item belongs to one subgroup AddToSubgroup(item, lsi, group, level, name, loading); } else { // the item belongs to multiple subgroups foreach (object o in nameList) { AddToSubgroup(item, lsi, group, level, o, loading); } } }
// add an item to the desired subgroup(s) of the given group void AddToSubgroups(object item, LiveShapingItem lsi, CollectionViewGroupInternal group, int level, bool loading) { object name = GetGroupName(item, group.GroupBy, level); ICollection nameList; if (name == UseAsItemDirectly) { // the item belongs to the group itself (not to any subgroups) if (lsi != null) { lsi.AddParentGroup(group); } if (loading) { group.Add(item); } else { int localIndex = group.Insert(item, item, ActiveComparer); int index = group.LeafIndexFromItem(item, localIndex); OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Add, item, index)); } } else if ((nameList = name as ICollection) == null) { // the item belongs to one subgroup AddToSubgroup(item, lsi, group, level, name, loading); } else { // the item belongs to multiple subgroups foreach (object o in nameList) { AddToSubgroup(item, lsi, group, level, o, loading); } } }