public void SortMovies() { var fdt = new DateTime(int.Parse(From.Text), DateTime.Now.Month, DateTime.Now.Day); var tdt = new DateTime(int.Parse(To.Text), DateTime.Now.Month, DateTime.Now.Day); var sort = ViewModel.Movies.Where(x => x.Title.ToLowerInvariant().Contains(Search.Text.ToLowerInvariant())); if (From.Text.Length == 4 || To.Text.Length == 4) { sort = sort.Where(x => x.ReleaseDate != null && (new DateTime(x.ReleaseDate.Value.Year, DateTime.Now.Month, DateTime.Now.Day).Year > fdt.Year && new DateTime(x.ReleaseDate.Value.Year, DateTime.Now.Month, DateTime.Now.Day).Year < tdt.Year)); } var acv = new AdvancedCollectionView(new ObservableCollection <Movie>(sort)); var content = ((ComboBoxItem)Sort.SelectedItem)?.Content; if (content != null && content.ToString().Contains("Ascending")) { acv.SortDescriptions.Add(new SortDescription("Title", SortDirection.Ascending)); } else if (content != null && content.ToString().Contains("Descending")) { acv.SortDescriptions.Add(new SortDescription("Title", SortDirection.Descending)); } else { acv.SortDescriptions.Add(new SortDescription("Title", SortDirection.Ascending)); } var abx = new List <Movie>(acv.ToList().OfType <Movie>()); if (!Genres.Any()) { AdaptiveGridViewMovies.ItemsSource = abx; return; } foreach (var i in abx.ToList()) { if (!i.Genres.Any(x => Genres.Any(y => y == x.Name))) { abx.Remove(i); } } AdaptiveGridViewMovies.ItemsSource = abx; }