private async void RefreshCategories() { DispatcherHelper.UIDispatcher.BeginInvoke(() => { IsRefreshingCategories = true; if (ListOfCategories == null) { ListOfCategories = new ObservableCollection <CategoryDetailsModel>(); } }); try { var categories = new List <CategoryDetailsModel>(); foreach (var category in await _dataService.GetCategoryDetailsAsync(true)) { categories.Add(category); } if (categories != null && categories.Count >= 1) { DispatcherHelper.UIDispatcher.BeginInvoke(() => { ListOfCategories.Clear(); foreach (var category in categories.OrderBy(o => o.Order)) { ListOfCategories.Add(category); } }); } } catch (Exception exception) { if (Debugger.IsAttached) { Debug.WriteLine("MainViewModel:" + exception); } } DispatcherHelper.UIDispatcher.BeginInvoke(() => { IsRefreshingCategories = false; if (ListOfCategories != null && ListOfCategories.Count > 0) { if (FavCategories == null) { FavCategories = new ObservableCollection <CategoryDetailsModel>(); } FavCategories.Clear(); foreach (var category in ListOfCategories) { if (category.IsPinned == true) { FavCategories.Add(category); } } } }); }
/// <summary> /// お気に入りや非表示に設定されたランキングカテゴリを元の状態に戻します /// </summary> /// <param name="userListItem"></param> internal void ClearFavStateRankingCategory(RankingCategorySettingsListItem userListItem) { if (FavCategories.Contains(userListItem)) { FavCategories.Remove(userListItem); SelectableCategories.Add(userListItem); ApplyAllPriorityCategoriesToRankingSettings(); } else if (DislikeCategories.Contains(userListItem)) { DislikeCategories.Remove(userListItem); SelectableCategories.Add(userListItem); ApplyAllPriorityCategoriesToRankingSettings(); } }