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>