示例#1
0
        /// <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
        }