예제 #1
0
        /// <summary>
        /// Конструктор.
        /// </summary>
        /// <param name="container">Используется только для того, чтобы зарегистрировать репозиторий после его инициализации </param>
        /// <param name="loader">Загрузчик.</param>
        /// <param name="applicationSettings">Настройки приложения</param>
        /// <param name="selectionMasksStorage"></param>
        /// <param name="messenger"></param>
        /// <param name="repositoryViewModelFactory"></param>
        /// <param name="sciChartViewModelFactory"> </param>
        /// <param name="colorsStorage"></param>
        public MainViewModel(IUnityContainer container,
                             ILoader loader,
                             IApplicationSettings applicationSettings,
                             ISelectionMasksStorage selectionMasksStorage,
                             IMessenger messenger,
                             IRepositoryViewModelFactory repositoryViewModelFactory,
                             ISciChartViewModelFactory sciChartViewModelFactory,
                             IColorsStorage colorsStorage)
        {
            SelectionMasksStorage = selectionMasksStorage;

            _container                  = container;
            _loader                     = loader;
            _applicationSettings        = applicationSettings;
            _messenger                  = messenger;
            _repositoryViewModelFactory = repositoryViewModelFactory;
            _colorsStorage              = colorsStorage;

            _mainChart = sciChartViewModelFactory.Create();

            IsRepositoryLoaded = false;

            if (File.Exists(_applicationSettings.SelectionMasksFullFilePath))
            {
                SelectionMasksStorage.Load(_applicationSettings.SelectionMasksFullFilePath);
            }

            InitializeCommands();
            _collapseTreeCmd        = new RelayCommand(CollapseTree, () => true);
            _collapsePowerOnTreeCmd = new RelayCommand(CollapsePowerOnTree, () => true);

            _messenger.Register <IsTrendOnPlotChangedMessage>(this, IsTrendOnPlotChanged);
        }
예제 #2
0
        private void AddTrendToPlot(ISciChartViewModel sciChartViewModel, ITrendViewModel trend)
        {
            if (trend.IsOnPlot)
            {
                IsTrendLoading       = true;
                trend.IsTrendLoading = true;

                sciChartViewModel.AddTrend(trend,
                                           result => {
                    IsTrendLoading       = false;
                    trend.IsTrendLoading = false;
                });
            }
            else
            {
                sciChartViewModel.RemoveTrend(trend);
            }
        }