WPF 中 MVVM 的项目结构

作者:编程家 分类: swift 时间:2025-09-14

WPF 中 MVVM 的项目结构

在 WPF 中,MVVM(Model-View-ViewModel)已成为一种流行的架构模式,它可以有效地分离应用程序的业务逻辑和用户界面。MVVM 将应用程序的核心逻辑和数据处理与用户界面的呈现和交互分开,使代码结构清晰、易于维护和测试。

MVVM 的项目结构通常包括三个主要组件:Model、View 和 ViewModel。Model 是应用程序的数据模型,负责封装数据和业务逻辑。View 是用户界面的呈现层,负责显示数据和与用户的交互。ViewModel 是连接 Model 和 View 的桥梁,负责处理数据绑定、命令和业务逻辑。

Model 层的设计

Model 层是应用程序的核心,它包含了数据和业务逻辑。在 MVVM 中,Model 负责封装数据和提供数据的访问和修改方法。通常,Model 层由实体类组成,用于表示数据对象,并包含相关的属性和方法。

以下是一个简单的示例代码,演示了如何设计一个 Model 类:

csharp

public class Customer

{

public int Id { get; set; }

public string Name { get; set; }

public string Email { get; set; }

}

在这个示例中,Customer 类表示一个客户对象,具有 Id、Name 和 Email 属性。根据实际需求,Model 层可以包含多个类,并且可以与数据库或其他数据源进行交互。

View 层的设计

View 层是用户界面的呈现层,负责显示数据和与用户的交互。在 WPF 中,View 通常使用 XAML(eXtensible Application Markup Language)来描述界面的布局和外观。XAML 是一种 XML 基础的语言,可以很容易地与后端代码进行绑定。

以下是一个简单的示例代码,演示了如何使用 XAML 来创建一个简单的用户界面:

xaml

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

xmlns:local="clr-namespace:WpfApp"

Title="Main Window" Height="450" Width="800">

在这个示例中,界面包含一个 TextBlock 控件和一个 Button 控件。TextBlock 控件通过数据绑定显示 Customer 的 Name 属性,Button 控件通过命令绑定执行 SaveCommand 命令。

ViewModel 层的设计

ViewModel 层是连接 Model 和 View 的桥梁,负责处理数据绑定、命令和业务逻辑。ViewModel 将 Model 的数据包装成可供 View 使用的属性,并提供与 View 交互的命令。

以下是一个简单的示例代码,演示了如何设计一个 ViewModel 类:

csharp

public class CustomerViewModel : INotifyPropertyChanged

{

private Customer _customer;

public Customer Customer

{

get { return _customer; }

set

{

_customer = value;

OnPropertyChanged(nameof(Customer));

}

}

public ICommand SaveCommand { get; }

public CustomerViewModel()

{

Customer = new Customer();

SaveCommand = new RelayCommand(Save);

}

private void Save()

{

// 保存 Customer 的逻辑

}

public event PropertyChangedEventHandler PropertyChanged;

protected virtual void OnPropertyChanged(string propertyName)

{

PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));

}

}

在这个示例中,CustomerViewModel 类包含一个 Customer 属性和一个 SaveCommand 命令。Customer 属性通过 INotifyPropertyChanged 接口实现属性改变通知,SaveCommand 命令通过 RelayCommand 类实现命令的执行逻辑。

MVVM 是一种在 WPF 中常用的架构模式,它通过将应用程序的核心逻辑和数据处理与用户界面的呈现和交互分开,使代码结构清晰、易于维护和测试。在 MVVM 的项目结构中,Model 层负责封装数据和业务逻辑,View 层负责显示数据和与用户的交互,ViewModel 层负责处理数据绑定、命令和业务逻辑。这种分离和组织的方式使得开发人员可以更好地管理和扩展应用程序的功能。