WPF MVVM框架 - Prism 简单接入
1. 安装Prism.DryIoc包

<ItemGroup>
<PackageReference Include="Prism.DryIoc" Version="9.0.537" />
</ItemGroup>2. 了解PrismApplication对象
PrismApplication 对象
PrismApplication继承PrismApplicationBase,PrismApplicationBase继承Application


3. 调整App.xaml相关内容
App.xaml.cs 调整
调整App基础的基类改为PrismApplication,从写CreateShell()方法、RegisterTypes()方法。
/// <summary>
/// Interaction logic for App.xaml
/// </summary>
public partial class App : Application
{
}
public partial class App : PrismApplication
{
protected override Window CreateShell()
{
// 返回一个窗体,从容器中解析
return Container.Resolve<MainWindow>();
}
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
// TO DO : 依赖注入
//// 首页
//containerRegistry.RegisterForNavigation<HomeView, HomeViewModel>();
////主窗体
//containerRegistry.RegisterForNavigation<MainWindow, MainWindowModel>();
//// 备忘录
//containerRegistry.RegisterForNavigation<MemoView, MemoViewModel>();
//// 设置
//containerRegistry.RegisterForNavigation<SettingView, SettingViewModel>();
//// - 关于
//containerRegistry.RegisterForNavigation<AboutView, AboutViewModel>();
//// - 个性化
//containerRegistry.RegisterForNavigation<PersonalizeView, PersonalizeViewModel>();
//// - 系统设置
//containerRegistry.RegisterForNavigation<SystemSettingsView, SystemSettingsViewModel>();
//// 待办事项
//containerRegistry.RegisterForNavigation<ToDoView, ToDoViewModel>();
}
}App.xaml 调整
引入xmlns:prism命名空间,移除StartupUri,替换Application改为prism:PrismApplication
<Application x:Class="Mvvm_Prism_01.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:Mvvm_Prism_01"
StartupUri="MainWindow.xaml">
<Application.Resources>
</Application.Resources>
</Application>
<prism:PrismApplication x:Class="Mvvm_Prism_01.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:Mvvm_Prism_01"
xmlns:prism="http://prismlibrary.com/">
<Application.Resources>
</Application.Resources>
</prism:PrismApplication>
测试启动
<Window x:Class="Mvvm_Prism_01.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Mvvm_Prism_01"
mc:Ignorable="d"
Title="MainWindow" Height="200" Width="300">
<Grid>
<TextBlock Text="Hello, World!" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="24"/>
</Grid>
</Window>