public MainWindow() { InitializeComponent(); DirectoryRelocator = new DirectoryRelocatorViewModel(); if (DirectoryRelocator.StoredDirectoryLinks.Count == 0) { DirectoryRelocator.AddStoredDirectoryLink(new DirectoryLink { Name = @"Test Folder", OriginalPath = @"E:\TestFolder\Start Location", BackupPath = @"E:\TestFolder\End Location" }); DirectoryRelocator.AddStoredDirectoryLink(new DirectoryLink { Name = @"Games", OriginalPath = @"C:\Games\Steam\SteamApps\common", BackupPath = @"E:\GamesBackup" }); } DirectoryRelocator.SelectedDirectoryLink = DirectoryRelocator.StoredDirectoryLinks.FirstOrDefault(); DirectoryRelocatorView.Content = DirectoryRelocator; }
private static void UpdateDirectoryList(DirectoryRelocatorViewModel model) { foreach (var details in model.DirectoryList) details.PropertyChanged -= model.OnDirectoryDetailsChanged; model.DirectoryList = DirectoryUtility.GetDirectoryDetails(model, model.m_ignoredDirectories, model.m_skippedDirectories); model.DirectoryList.Sort(GenericUtility.InvertCompare); foreach (var details in model.DirectoryList) details.PropertyChanged += model.OnDirectoryDetailsChanged; model.IsWorking = true; List<DirectoryDetails> directories = model.DirectoryList; Task.Run(() => SortDirectoriesWhenLoaded(directories)) .ContinueWith(task => model.Dispatcher.BeginInvoke(new Action(() => { model.DirectoryList = null; model.DirectoryList = task.Result; model.IsWorking = false; }))); }