public async Task InitializeAsync(ActiveFileBackup.Configuration.Config config) { var selectedFolders = from folder in config.FolderList select new SelectedFolder(new DirectoryInfo(folder.Path), folder.Recursive); var selectedFoldersObservableCollection = new ObservableCollection <SelectedFolder>(selectedFolders); selectedFoldersObservableCollection.CollectionChanged += SelectedFolders_CollectionChanged; var drives = await FileProvider.GetDrivesAsync(); var directories = from drive in drives select new Folder(drive, selectedFoldersObservableCollection); Directories = directories; OnPropertyChanged(() => Directories); var oldSelectedFolders = SelectedFolders; SelectedFolders = new ListCollectionView(selectedFoldersObservableCollection); SelectedFolders.SortDescriptions.Add(new SortDescription("Directory.FullName", ListSortDirection.Ascending)); SelectedFolders.MoveCurrentToPosition(-1); OnPropertyChanged(() => SelectedFolders); if (oldSelectedFolders != null) { ((ObservableCollection <SelectedFolder>)oldSelectedFolders.SourceCollection).CollectionChanged -= SelectedFolders_CollectionChanged; } }