public override Task NavigatedToAsync(object parameter = null) { return(Task.Factory.StartNew(async() => { do { await Task.Delay(100); } while (ComposerList.Count == 0); Device.BeginInvokeOnMainThread(() => { if (Device.RuntimePlatform.Equals(Device.iOS)) //iOS { if (ComposerSimpleList.Any()) { return; } ComposerSimpleList.AddRange(ComposerList); } else { if (Composers.Any()) { return; } var groups = ComposerList.GroupBy(x => x.Name.First().ToString()); foreach (var group in groups) { var coll = new ComposerGroup(); coll.AddRange(group); coll.ShortName = group.Key; Composers.Add(coll); } } }); })); }