1. MVVM框架基础认知
第一次接触MVVM模式是在2015年一个WPF项目里,当时被其清晰的职责分离所震撼。MVVM(Model-View-ViewModel)作为微软力推的架构模式,已经发展出多个成熟实现方案。CommunityToolkit.Mvvm(原Microsoft.Toolkit.Mvvm)就是其中轻量级但功能完备的代表作。
这个框架最大的特点就是"开箱即用"——不需要复杂配置,nuget安装后立即可以开始编码。我在多个实际项目中使用后发现,对于中小型应用开发,它提供了恰到好处的功能集:命令绑定、消息通知、依赖注入支持等核心功能一应俱全,但又不会像Prism等框架那样带来沉重的学习成本。
提示:CommunityToolkit.Mvvm最新稳定版是8.2.1,支持.NET Standard 2.0及以上版本,这意味着可以跨平台使用
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与项目创建
2.1 开发环境配置
推荐使用Visual Studio 2022 17.4+版本,社区版即可满足需求。新建一个WPF项目(.NET 6+),我习惯命名为MvvmDemo。通过NuGet包管理器安装两个核心组件:
bash复制Install-Package CommunityToolkit.Mvvm -Version 8.2.1
Install-Package CommunityToolkit.Mvvm.ComponentModel -Version 8.2.1
实测发现,有时直接安装主包会漏掉部分子组件。保险起见,我会显式安装ObservableObject等常用组件。创建项目结构时,我采用这样的分层:
code复制/MvvmDemo
├── Models/ # 数据模型
├── ViewModels/ # 视图模型
├── Views/ # 用户界面
└── Services/ # 服务层
2.2 基础类改造
在App.xaml中移除StartupUri,改为通过代码启动:
xml复制<Application x:Class="MvvmDemo.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
</Application>
然后在App.xaml.cs中重写OnStartup:
csharp复制protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
new MainWindow { DataContext = new MainViewModel
