private async void LoadGroups(bool preloadDatasets) { await Task.Run(() => { DisplayStatus($"Loading groups..."); var groups = // from g in PowerBI_Tools.GetGroups() from g in PowerBI_Tools.GetPbiGroups(null) orderby g.Name select g; if (preloadDatasets) { foreach (var g in groups) { DisplayStatus($"Loading datasets for group {g.Name}..."); g.Group.Datasets = new BindableCollection <Dataset>( from d in PowerBI_Tools.GetDatasets(g.Group) orderby d.Name select d ); } groups = from g in groups where g.Group.Datasets.Count > 0 orderby g.Name select g; DisplayStatus($"Loaded {groups.Count()} groups.", 3000); } // PbiMetadataBinding.PbiGroups = new BindableCollection<Group>(groups); PbiMetadataTreeBinding.PbiGroups = new BindableCollection <TreeViewPbiGroup>(groups); }); }