public async void FetchYearsAsync() { App.Dispatcher.Invoke(() => { IsYearsFetchEnabled = false; }); var terms = await HttpClient.GetTermsAsync(); lock (Years) { App.Dispatcher.Invoke(() => { var index = YearIndex; HashSet <int> sets = new HashSet <int>(); sets.Add(-1); foreach (var item in terms) { sets.Add(item.Year); } Years.ReplaceItems(sets.OrderBy(item => item)); if (index > 0 && index < Years.Count) { YearIndex = index; } else { YearIndex = 0; } }); } App.Dispatcher.Invoke(() => { IsYearsFetchEnabled = true; }); }