Esempio n. 1
0
        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();
        }