WPF、Prism 如何 link 视图和 URI
WPF, How Prism link Views and URI
我正在学习 Prism,我不明白如何使用 URI 完成导航。在此 documentation example, the code on 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,但是link是如何完成的呢?
Prism 是否只是查看 URI 并尝试找到匹配的视图名称,然后将其加载到区域中?
如果我的假设是正确的,那么URI和View之间就不需要注册link了。但是,如果重命名视图怎么办,这意味着导航将被破坏,对吗?
对于 "missing link",查看 ViewSwitchingNavigation.Calendar/CalendarModule.cs
,这是初始化日历模块的地方,即它让应用程序的其余部分知道所有内容的地方:
this.unityContainer.RegisterTypeForNavigation<CalendarView>();
这基本上是说“当被要求导航到 'CalendarView'时,创建一个 CalendarView
的实例” .
我正在学习 Prism,我不明白如何使用 URI 完成导航。在此 documentation example, the code on 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,但是link是如何完成的呢? Prism 是否只是查看 URI 并尝试找到匹配的视图名称,然后将其加载到区域中?
如果我的假设是正确的,那么URI和View之间就不需要注册link了。但是,如果重命名视图怎么办,这意味着导航将被破坏,对吗?
对于 "missing link",查看 ViewSwitchingNavigation.Calendar/CalendarModule.cs
,这是初始化日历模块的地方,即它让应用程序的其余部分知道所有内容的地方:
this.unityContainer.RegisterTypeForNavigation<CalendarView>();
这基本上是说“当被要求导航到 'CalendarView'时,创建一个 CalendarView
的实例” .