protected void UpdateLoadedMediaItems(MediaItem mediaItem, ContentDirectoryMessaging.MediaItemChangeType changeType)
        {
            if (changeType == ContentDirectoryMessaging.MediaItemChangeType.None)
            {
                return;
            }

            bool changed = false;

            lock (_syncObj)
            {
                if (changeType == ContentDirectoryMessaging.MediaItemChangeType.Updated)
                {
                    IEnumerable <PlayableContainerMediaItem> containerItems = _items.OfType <PlayableContainerMediaItem>();
                    PlayableContainerMediaItem existingItem = containerItems.FirstOrDefault(pcm => pcm.MediaItem.Equals(mediaItem));
                    if (existingItem != null)
                    {
                        existingItem.Update(mediaItem);
                        changed = SetSelectedItem(containerItems);
                    }
                }
            }
            if (changed)
            {
                _items.FireChange();
            }
        }
        protected void UpdateLoadedMediaItems(MediaItem mediaItem, ContentDirectoryMessaging.MediaItemChangeType changeType)
        {
            if (changeType == ContentDirectoryMessaging.MediaItemChangeType.None)
            {
                return;
            }

            lock (_syncObj)
            {
                if (changeType == ContentDirectoryMessaging.MediaItemChangeType.Updated)
                {
                    PlayableContainerMediaItem existingItem = _items.OfType <PlayableContainerMediaItem>().FirstOrDefault(pcm => pcm.MediaItem.Equals(mediaItem));
                    if (existingItem != null)
                    {
                        existingItem.Update(mediaItem);
                    }
                }
            }
        }