/// <summary> /// Устанавливает текущий контроллер. /// </summary> /// <param name="baseController">Контроллер который следует установить.</param> private void SetCurrentController(BaseController baseController) { if (_currentController != null && !_currentController.CanTerminate()) { ClientCore.Instance.UserNotifier.ShowMessage("Внимание", "Текущая операция не завершена, необходимо дождаться окончания действий системы"); return; } //if DisposeCurrentController(); if (_mainWindow.Dispatcher.CheckAccess()) { _currentController = baseController; _currentController.Initialize(); SetWindow(_currentController.GetView()); } else { _mainWindow.Dispatcher.Invoke(DispatcherPriority.Normal, new Action <BaseController>(SetCurrentController), baseController); } //else }