public MainViewModel() { SynchronizationContext uiContext = SynchronizationContext.Current; ReportObjectCollection = new ObservableCollection <ReportObjects>(); SelectedReportObject = new ReportObjects() { Id = -1 }; serverConnection .ConnectAsync() .ContinueWith(task => { IReportServerClient client = task.Result; client.SetSynchronizationContext(uiContext); return(client.GetReportsAsync(null)); }).Unwrap() .ContinueWith(task => { if (task.IsFaulted) { MessageBoxService.Show(task.Exception.Message, "Error", System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Error); } else { FillReportListBox(task.Result); } }, TaskScheduler.FromCurrentSynchronizationContext()); }
void FillReportListBox(IEnumerable <ReportCatalogItemDto> reports) { foreach (var reportDto in reports) { ReportObjects item = new ReportObjects() { DisplayName = reportDto.Name, Id = reportDto.Id }; this.ReportObjectCollection.Add(item); } }