Перейдите к представлению по умолчанию, когда приложение загружено с использованием Prism 7 в WPF
Я следую за примерами кода, предоставленными в https://github.com/PrismLibrary/Prism-Samples-Wpf/blob/master/17-BasicRegionNavigation
Я хочу добиться следующего результата при запуске приложения (без явного нажатия кнопки "Навигация для просмотра A"). кто нибудь знает как это сделать?
Я пробовал добавлять Navigate("ViewA");
после этой строки. Однако я не могу получить желаемый результат. Это потому, что модуль не был инициализирован?
Благодарю.
3 ответа
Вы добавили свой модуль в каталог модулей с помощью метода переопределения ConfigureModuleCatalog? посмотрите на здесь
В конце концов я решаю, добавив следующий код в MainWindow.xaml.cs
public partial class MainWindow
{
IRegionManager _regionManager;
public MainWindow()
{
InitializeComponent();
_regionManager = ServiceLocator.Current.GetInstance<IRegionManager>();
RegionManager.SetRegionManager(ContentRegion, _regionManager);
Loaded += MainWindow_Loaded;
}
private void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
_regionManager.RequestNavigate("ContentRegion", "ViewA");
}
}
Получите идею от: https://github.com/MahApps/MahApps.Metro/issues/1020
Я немного опоздал на вечеринку, но я также наткнулся на вопрос о том, как перейти к представлению по умолчанию во время запуска приложений.
Я нашел два пути:
1. определяет вид по умолчанию
Это можно решить в
CreateShell()
- переопределить в
App
-Учебный класс.
Это мое
CreateShell
-Метод:
/// <inheritdoc />
protected override Window CreateShell()
{
var window = this.Container.Resolve<MainWindow>();
window.Loaded += (sender, args) =>
{
var manager = this.Container.Resolve<IRegionManager>();
manager.RequestNavigate("ContentRegion", "ViewA");
};
return window;
}
2. ViewModel определяет представление по умолчанию
Добавьте конструктор в
MainWindowViewModel
это выглядит так:
public MainWindowViewModel(IRegionManager regionManager)
{
regionManager.RegisterViewWithRegion("ContentRegion", "ViewA");
}