public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            if (values.Length == 2)
            {
                if (values[0] is MediaItem)
                {
                    MediaItem            mediaItem = values[0] as MediaItem;
                    IMultiValueConverter valueConverter;

                    switch (mediaItem.Type)
                    {
                    case MediaItemTypeEnum.Video:
                        valueConverter = new VideoViewGenresConverter();
                        break;

                    case MediaItemTypeEnum.Song:
                        valueConverter = new SongViewGenresConverter();
                        break;

                    default:
                        throw new UnknownEnumValueException(mediaItem.Type);
                    }

                    return(valueConverter.Convert(values, targetType, parameter, culture));
                }
            }

            return(new IntelligentString[0]);
        }
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            List <IntelligentString> tags = new List <IntelligentString>();

            Boolean?showHidden = value as Boolean?;

            MediaPlayerDialog mpd       = Application.Current.MainWindow as MediaPlayerDialog;
            List <object>     lstValues = new List <object>();

            lstValues.Add(mpd.Videos);
            lstValues.Add(showHidden);

            VideoViewGenresConverter videoGenres = new VideoViewGenresConverter();

            tags.AddRange((IEnumerable <IntelligentString>)videoGenres.Convert(lstValues.ToArray(), targetType, parameter, culture));

            VideoViewProgramsConverter videoPrograms = new VideoViewProgramsConverter();

            tags.AddRange((IEnumerable <IntelligentString>)videoPrograms.Convert(lstValues.ToArray(), targetType, parameter, culture));

            tags.Sort();
            return(tags.ToArray());
        }