예제 #1
0
        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;
            }
        }