public ProjectSettingViewModel(Project project) { project_ = project; ProjectType.Subscribe(x => project_.ProjectTypeName.Value = x?.FullName); OpenAssemblyCommand.Subscribe(x => OpenAssembly()); SelectExportPathCommand.Subscribe(x => SelectExportPath()); ReferenceDependencyCommand.Where(x => x >= 0).Subscribe(i => InputReference(i)); AddDependencyCommand.Subscribe(i => AddDependency()); RemoveDependencyCommand.Where(x => x >= 0).Subscribe(i => RemoveDependency(i)); AssemblyPath.Subscribe(x => SetAvailableProjectTypes()); SetAvailableProjectTypes(); }
public ProjectViewModel(UserInterface userInterface, StatusInfo statusInfo, OpenedProjects openedProjects, ProjectContext projectContext) { if (userInterface == null) { throw new ArgumentNullException(nameof(userInterface)); } if (statusInfo == null) { throw new ArgumentNullException(nameof(statusInfo)); } if (openedProjects == null) { throw new ArgumentNullException(nameof(openedProjects)); } if (projectContext == null) { throw new ArgumentNullException(nameof(projectContext)); } ProjectContext = projectContext; // Create view models. FlagListViewModel = new FlagListViewModel(projectContext, statusInfo, userInterface); MainFooterViewModel = new MainFooterViewModel(projectContext, statusInfo, userInterface); MainHeaderViewModel = new MainHeaderViewModel(projectContext, statusInfo, userInterface); // Create commands OpenAssemblyCommand = new OpenAssemblyCommand(userInterface, projectContext); CloseProjectCommand = new CloseProjectCommand(userInterface, openedProjects); // Initialize everything ProjectContext.Loaded += HandleProjectLoaded; ProjectContext.Unloaded += HandleProjectUnloaded; UpdateOpenPanelVisibility(); UpdateHeader(); }