Example #1
0
        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);
                    }
                }
            }
        }