WPF 棱镜 - 没有视图的导航?
WPF Prism - Navigation without views?
我有一个 WPF MVVM 应用程序,它使用强类型数据模板来表示我的视图模型的视图。这些 DataTemplates 在资源字典中并自动 link 到视图模型 - 标准的东西。
我想让 Prism 导航适合我的应用程序,但导航方法需要视图的 Uri,这不是这种特定 MVVM 风格的一部分。
一个区域(在 ContentControl 上)是否可以简单地导航到一个新的视图模型?
Prism for WPF 是否支持这种无视图实现
谢谢
您可以使用 RegisterTypeForNavigation
方法以唯一的名称注册用于导航的视图模型类型,例如在您的引导程序中 class:
Container.RegisterTypeForNavigation<ViewAViewModel>("a");
然后您应该可以使用此名称导航到它:
regionManager.RequestNavigate("YourRegionName", "a");
视图将照常使用 DataTemplates
解析,例如:
<ContentControl prism:RegionManager.RegionName="YourRegionName">
<ContentControl.Resources>
<DataTemplate DataType="{x:Type viewModels:ViewAViewModel}">
<views:ViewA/>
</DataTemplate>
</ContentControl.Resources>
</ContentControl>
我有一个 WPF MVVM 应用程序,它使用强类型数据模板来表示我的视图模型的视图。这些 DataTemplates 在资源字典中并自动 link 到视图模型 - 标准的东西。
我想让 Prism 导航适合我的应用程序,但导航方法需要视图的 Uri,这不是这种特定 MVVM 风格的一部分。
一个区域(在 ContentControl 上)是否可以简单地导航到一个新的视图模型?
Prism for WPF 是否支持这种无视图实现
谢谢
您可以使用 RegisterTypeForNavigation
方法以唯一的名称注册用于导航的视图模型类型,例如在您的引导程序中 class:
Container.RegisterTypeForNavigation<ViewAViewModel>("a");
然后您应该可以使用此名称导航到它:
regionManager.RequestNavigate("YourRegionName", "a");
视图将照常使用 DataTemplates
解析,例如:
<ContentControl prism:RegionManager.RegionName="YourRegionName">
<ContentControl.Resources>
<DataTemplate DataType="{x:Type viewModels:ViewAViewModel}">
<views:ViewA/>
</DataTemplate>
</ContentControl.Resources>
</ContentControl>