RequestNavigate в главном окне MainWindowViewModel - PullRequest
1 голос
/ 12 марта 2020

Привет, я хочу, когда приложение запускается, приложение автоматически переходит к представлению, поэтому я использовал это так:

 protected override Window CreateShell()
        {
            return Container.Resolve<MainWindow>();
        }

        protected override void RegisterTypes(IContainerRegistry containerRegistry)
        {
            containerRegistry.RegisterForNavigation<MainContent>();

            containerRegistry.RegisterForNavigation<Subscene>();
        }

и в MainWindowViewModel

public MainWindowViewModel(IRegionManager regionManager)
        {
            _regionManager = regionManager;

            _regionManager.RequestNavigate("ContentRegion", "Subscene", myparameter);
        }

этот код не работает, ошибок нет и нет навигации

мой регион существует в другом пользовательском контроле с именем MainContent

1 Ответ

0 голосов
/ 13 марта 2020

Это работает только для "нормальных" моделей представления, но не для модели представления оболочки, поскольку она создается слишком рано. Вы должны выполнить начальную навигацию в OnInitialized.

internal class MyApp : PrismApplication
{
     // ...

     protected override void OnInitialized()
     {
         base.OnInitialized();
         Container.Resolve<IRegionManager>().RequestNavigate("ContentRegion", "Subscene", myparameter);
     }

     // ...
}

Несвязанный sidenote: если вы используете параметр вместо поля в конструкторе, Resharper сообщит вам, когда поле больше не потребуется в будущих рефакторингах .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...