58
задан 31 March 2010 в 18:44

1 ответ

Я просто столкнулся с той же проблемой и нашел проблему, устанавливающую владельца, использующего MVVM, не заставляя приложение отказать в производстве. У меня есть Модель Представления Менеджера окон, которая включает команду для открытия окна с помощью uri окна - и я не смог установить владельца на Приложение. MainWindow без катастрофического отказа приложения.

Так - Вместо того, чтобы установить владельца, я связал свойство TopMost окна к свойству в моей модели Window Manager View, которая указывает, в настоящее время ли приложение активно. Если бы приложение активно, окно находится на вершине, как я хотел бы. Если это не активно, другие окна могут покрыть его.

Вот то, что я добавил к своей Модели Представления:

 public class WindowManagerVM : GalaSoft.MvvmLight.ViewModelBase
    {
        public WindowManagerVM()
        {
            App.Current.Activated += (s, e) => IsAppActive = true;
            App.Current.Deactivated += (s, e) => IsAppActive = false;
        }

        private bool _isAppActive = true;
        public bool IsAppActive
        {
            get => _isAppActive;
            set
            {
                if (_isAppActive != value)
                {
                    _isAppActive = value;
                    RaisePropertyChanged(() => IsAppActive);
                }
            }
        }
    }

Вот XAML, который реализует его (я использую световой сигнал MVVM с ViewModelLocator как статический ресурс в моем приложении под названием Локатор):

<Window Topmost="{Binding WindowManager.IsAppActive, Source={StaticResource Locator}}"/>
0
ответ дан 1 November 2019 в 14:29

Другие вопросы по тегам:

Похожие вопросы: