public MainFormPresenter(IMainView view, ISharedViewState sharedViewState, IApplicationManager applicationManager) { _view = view; _sharedViewState = sharedViewState; _applicationManager = applicationManager; // _view.EnterClicked += (o, e) => _sharedViewState.CurrentAction?.Invoke(o, e); _view.ModeForcedToReal += (sender, args) => { // SetMode(CalculationsMode.Real); EventAggregator.Instance.Publish(new CalculationsModeChangedEvent(CalculationsMode.Real)); }; _view.ModeForcedToComplex += (sender, args) => { // SetMode(CalculationsMode.Complex); EventAggregator.Instance.Publish(new CalculationsModeChangedEvent(CalculationsMode.Complex)); }; _view.ModeForcedToFxy += (sender, args) => { // SetMode(CalculationsMode.Fxy); EventAggregator.Instance.Publish(new CalculationsModeChangedEvent(CalculationsMode.Fxy)); }; EventAggregator.Instance.Subscribe <CalculationsModeChangedEvent>(mode => SetMode(mode.CalculationsMode)); Settings.Default.PropertyChanged += (o, e) => { switch (e.PropertyName) { case nameof(Settings.Default.Language): _applicationNeedRestart = !Equals(CultureInfo.CurrentCulture, Settings.Default.Language); break; } }; Settings.Default.SettingsSaved += (o, e) => { if (_applicationNeedRestart) { _applicationNeedRestart = false; Task.Factory.StartNew(() => { Thread.Sleep(400); _applicationManager.Restart(); }); } }; ///////EventAggregator.Instance.Subscribe<ChangeViewEvent>(cv => { _view.SelectedViewIndex = (int) cv.View; }); _view.SelectedViewIndex = (int)_sharedViewState.CurrentView; _sharedViewState.PropertyChanged += (o, e) => { switch (e.PropertyName) { case nameof(_sharedViewState.CurrentView): Logger.Info($"Changing {nameof(_view.SelectedViewIndex)} {(ViewName)_view.SelectedViewIndex} to {_sharedViewState.CurrentView}"); _view.SelectedViewIndex = (int)_sharedViewState.CurrentView; break; } }; _view.SelectedViewChanged += _view_SelectedViewChanged; _view.StatusText = AppInformation.Version; }