WPF, Prism如何链接视图和URI

本文关键字:链接 视图 URI Prism 何链接 WPF | 更新日期: 2023-09-27 18:14:20

我正在学习Prism,我不明白导航是如何用URI完成的。在这个文档示例中,github上的代码使用:

private void Button_Click(object sender, RoutedEventArgs e)
{            
    this.regionManager.RequestNavigate(RegionNames.MainContentRegion, calendarViewUri);
}

URI声明如下:

private static Uri calendarViewUri = new Uri("CalendarView", UriKind.Relative);

存在CalendarView。在代码中声明了Xaml,但是链接是如何完成的呢?Prism只是查看URI并尝试找到匹配的视图名称,然后将其加载到区域中吗?

如果我的假设是正确的,就不需要注册URI和View之间的链接。但如果视图被重命名,那就意味着导航会被破坏,对吗?

WPF, Prism如何链接视图和URI

对于"missing link",查看ViewSwitchingNavigation.Calendar/CalendarModule.cs,这是日历模块初始化的地方,也就是说,它使应用程序的其余部分都知道它的所有内容:

this.unityContainer.RegisterTypeForNavigation<CalendarView>();

这基本上是说"当被要求导航到 'CalendarView'时,创建一个 CalendarView的实例"。