private void LoadWorkspace(CShell.Workspace workspace) { tree = new TreeViewModel(); CShellFile = new CShellFileViewModel(workspace.CShellFile); tree.Children.Add(cShellFile); //add the assembly references var refs = new AssemblyReferencesViewModel(workspace.Assemblies); tree.Children.Add(refs); //add the file tree //var files = new FileReferencesViewModel(workspace.Files, null); var files = new RootFolderViewModel(workspace.RootFolder, workspace); tree.Children.Add(files); NotifyOfPropertyChange(() => Tree); }
private void WorkspaceOnPropertyChanged(object sender, PropertyChangedEventArgs propertyChangedEventArgs) { if (propertyChangedEventArgs.PropertyName == "WorkspaceDirectory") { //teardown the current workspace if (tree != null) { tree.Dispose(); tree = null; NotifyOfPropertyChange(() => Tree); } if (workspace.WorkspaceDirectory != null && Directory.Exists(workspace.WorkspaceDirectory)) { tree = new TreeViewModel(); //add the assembly references var refs = new AssemblyReferencesViewModel(workspace.ReplExecutor); tree.Children.Add(refs); //add the file tree //var files = new FileReferencesViewModel(workspace.Files, null); var files = new FolderRootViewModel(workspace.WorkspaceDirectory, workspace); tree.Children.Add(files); NotifyOfPropertyChange(() => Tree); Settings.Default.LastWorkspace = workspace.WorkspaceDirectory; Settings.Default.Save(); } } }