在现代WPF应用程序开发中,Prism MVVM框架因其强大的模块化支持、命令绑定机制和依赖注入能力,成为众多开发者的首选。如果你是刚接触WPF或MVVM设计模式的新手,本文将带你从零开始搭建一个基于Prism的WPF项目,并详细解释每个关键步骤。

MVVM(Model-View-ViewModel)是一种用于分离用户界面逻辑与业务逻辑的设计模式。它使代码更易于测试、维护和扩展。
Prism是由Microsoft Patterns & Practices团队开发的一个开源框架,专为构建松耦合、可维护的WPF(以及UWP、Xamarin等)应用程序而设计。它提供了对MVVM、依赖注入、事件聚合、模块化加载等特性的原生支持。
1. 打开 Visual Studio,选择“创建新项目” → “WPF 应用 (.NET Core 或 .NET Framework)”。
2. 安装 Prism 模板包(推荐使用 NuGet 包管理器):
Install-Package Prism.Unity -Version 8.1.97> 注意:Prism 支持多种 IoC 容器,如 Unity、DryIoc、Autofac 等。这里我们以 Prism.Unity 为例。
修改 App.xaml.cs 文件,使其继承自 PrismApplication:
using Prism.Ioc;using Prism.Unity;using System.Windows;namespace MyPrismApp{ public partial class App : PrismApplication { protected override Window CreateShell() { return Container.Resolve<MainWindow>(); } protected override void RegisterTypes(IContainerRegistry containerRegistry) { // 在此处注册服务或视图模型 } }}同时,记得删除 App.xaml 中的 StartupUri 属性,因为Prism会自动处理启动窗口。
在项目中新建一个文件夹 ViewModels,并添加 MainWindowViewModel.cs:
using Prism.Commands;using Prism.Mvvm;namespace MyPrismApp.ViewModels{ public class MainWindowViewModel : BindableBase { private string _title = "欢迎使用 Prism MVVM 框架!"; public string Title { get => _title; set => SetProperty(ref _title, value); } public DelegateCommand GreetCommand { get; } public MainWindowViewModel() { GreetCommand = new DelegateCommand(OnGreet); } private void OnGreet() { Title = "你好,Prism!"; } }}然后,在 App.xaml.cs 的 RegisterTypes 方法中注册该 ViewModel:
protected override void RegisterTypes(IContainerRegistry containerRegistry){ containerRegistry.RegisterForNavigation<MainWindow, MainWindowViewModel>();}打开 MainWindow.xaml,设置 DataContext 并绑定控件:
<Window x:Class="MyPrismApp.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:prism="http://prismlibrary.com/" prism:ViewModelLocator.AutoWireViewModel="True" Title="{Binding Title}" Height="350" Width="500"> <Grid> <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center"> <TextBlock Text="{Binding Title}" FontSize="20" Margin="0,0,0,20" /> <Button Content="点击问候" Command="{Binding GreetCommand}" Width="120" Height="35" /> </StackPanel> </Grid></Window>注意:prism:ViewModelLocator.AutoWireViewModel="True" 是Prism的关键特性,它会自动将 View 与对应的 ViewModel 关联(命名需匹配,如 MainWindow → MainWindowViewModel)。
通过以上步骤,你已经成功构建了一个基于 Prism MVVM框架 的 WPF 应用程序。这种结构不仅清晰,而且便于单元测试和后期维护。
无论你是正在学习 WPF开发教程 的初学者,还是希望提升项目架构能力的中级开发者,掌握 Prism入门指南 和 MVVM设计模式 都将为你打下坚实的基础。
下一步,你可以尝试添加模块化功能、使用 EventAggregator 进行跨 ViewModel 通信,或集成导航服务实现多页面切换。
祝你编码愉快!