C# WPF入门学习主线篇(三十)—— MVVM(Model-View-ViewModel)模式
MVVM(Model-View-ViewModel)模式是WPF(Windows Presentation Foundation)开发中的一种常用架构模式。它通过将用户界面(View)与业务逻辑和数据(Model)分离开来,提高了代码的可维护性和可测试性。本文将详细介绍MVVM模式的基本概念和实现方法,并通过一个示例演示如何在WPF应用程序中使用MVVM模式。
一、MVVM模式的基本概念
1. Model
Model
表示应用程序的核心数据和业务逻辑。它通常包含数据结构、业务规则和数据访问代码。在MVVM模式中,Model不依赖于UI,它是独立的可重用组件。
2. View
View
表示用户界面,它负责显示数据和接收用户输入。View通过数据绑定和命令与ViewModel交互,而不直接访问Model。View通常是XAML文件及其相关的代码隐藏文件。
3. ViewModel
ViewModel
是View和Model之间的桥梁。它负责从Model获取数据,并将这些数据提供给View,同时处理用户在View上的交互。ViewModel通常实现通知机制(如INotifyPropertyChanged接口),以便在数据变化时通知View进行更新。
二、MVVM模式的实现
接下来,我们通过一个简单的示例演示如何在WPF应用程序中实现MVVM模式。
1. 定义Model
首先,我们定义一个简单的Model类Person
,包含两个属性Name
和Age
。
public class Person
{
public string Name {
get; set; }
public int Age {
get; set; }
}
2. 定义ViewModel
接下来,我们定义ViewModel类PersonViewModel
,实现INotifyPropertyChanged接口,以便在属性变化时通知View。
using System.ComponentModel;
public class PersonViewModel : INotifyPropertyChanged
{
private Person _person;
public PersonViewModel()
{
_person = new Person {
Name = "John Doe", Age = 30 };
}
public string Name
{
get => _person.Name;
set
{
if (_person.Name != value)
{
_person.Name = value;
OnPropertyChanged("Name");
}
}
}
public int Age
{
get => _person.Age;
set
{
if (_person.Age != value)
{
_person.Age = va