private void collectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) { if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Add) { IEnumerable <AbMediaContent> newItems = e.NewItems.Cast <AbMediaContent>(); foreach (AbMediaContent media in newItems) { if (media.mediaType == MediaContentType.Card) { cardBox.addNewMedia(media); if (cardBox.isOpen) { Insert(IndexOf(cardBox) + cardBox.mediaCount, media); } if (cardBox.mediaCount == 1) { Insert(0, cardBox); } } else { Add(media); } } } else if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Remove) { IEnumerable <AbMediaContent> oldItems = e.OldItems.Cast <AbMediaContent>(); foreach (AbMediaContent media in oldItems) { if (media.mediaType == MediaContentType.Card) { cardBox.removeMedia(media); if (cardBox.isOpen) { Remove(media); } if (cardBox.mediaCount == 0) { Remove(cardBox); cardBox.isOpen = false; } } else { Remove(media); } } } }