public void SetChampList(IEnumerable<MyChampDto> champions) { var groups = new Dictionary<string, List<object>>(); champs = champions.ToList(); var save = new List<int>(); var filter = SearchBox.Text; if (filter.Equals("Search")) filter = ""; foreach (var item in champions.OrderBy(c => c.name).Where(c => Regex.IsMatch(c.name, filter, RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace))) { save.Add(item.key); if (!groups.ContainsKey(item.tags[0])) groups[item.tags[0]] = new List<object>(); groups[item.tags[0]].Add(new { Image = DataDragon.GetChampIconImage(item).Load(), Name = item.name, Data = item }); } if (last != null && save.SequenceEqual(last)) return; last = save; GroupsList.Children.Clear(); foreach (var group in groups) { var grid = new Grid(); grid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto }); grid.RowDefinitions.Add(new RowDefinition()); var label = new Label { Content = group.Key, FontSize = 18 }; grid.Children.Add(label); var items = new ItemsControl { ItemsSource = group.Value }; grid.Children.Add(items); Grid.SetRow(items, 1); GroupsList.Children.Add(grid); } ChampSelect.Visibility = Visibility.Visible; SkinSelect.Visibility = Visibility.Collapsed; }
public void Reinitialize(List<FilterOption> filters, List<ColumnOption> columns, ColumnOptionsMode columnOptionsMode, List<OrderOption> orders, Pagination pagination) { try { avoidPaginationChange = true; ColumnOptions.Clear(); ColumnOptions.AddRange(columns); ColumnOption.SetColumnTokens(ColumnOptions, Description); ColumnOptionsMode = columnOptionsMode; GenerateListViewColumns(); if (!filters.SequenceEqual(FilterOptions)) { if (SimpleFilterBuilder != null) SimpleFilterBuilder = null; FilterOptions.Clear(); FilterOption.SetFilterTokens(filters, Description); FilterOptions.AddRange(filters); } OrderOptions.Clear(); OrderOptions.AddRange(orders); OrderOption.SetOrderTokens(OrderOptions, Description); SortGridViewColumnHeader.SetColumnAdorners(gvResults, OrderOptions); UpdateMultiplyMessage(true); Pagination = pagination; } finally { avoidPaginationChange = false; } }