public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture) { ObservableCollection <Video> videos = values[0] as ObservableCollection <Video>; if (videos != null) { if ((values[1] != null) && (values[1] != DependencyProperty.UnsetValue)) { IntelligentString viewAllText = (IntelligentString)values[1]; MediaItemFilter filter = values[2] as MediaItemFilter; ObservableCollection <IntelligentString> selectedGenres = values[3] as ObservableCollection <IntelligentString>; if (selectedGenres != null) { ObservableCollection <IntelligentString> selectedPrograms = values[4] as ObservableCollection <IntelligentString>; if (selectedPrograms != null) { List <IntelligentString> series = new List <IntelligentString>( (from video in videos where PassSeries(video, viewAllText, filter, selectedGenres.ToArray(), selectedPrograms.ToArray()) select IntelligentString.FromString(video.Series.ToString())).Distinct()); series.Sort(); series.Insert(0, viewAllText); return(new ObservableCollection <IntelligentString>(series)); } } } } return(new ObservableCollection <IntelligentString>()); }