WPF -> MVVM

1.1安装MVV MLight

  1. 打开 Visual Studio 2022。

  2. 在顶部菜单栏中选择"工具" -> "NuGet 包管理器" -> "程序包管理器控制台"。

  3. 在控制台中输入以下命令,并按回车键运行:

    Install-Package MvvmLightLibsStd10

4.等待安装完成后,你就可以在项目中使用 MVVMLight 了。

  1. 2:图示安装。

1.3:MvvmLight 和MvvmLightlib区别

MvvmLight 和 MvvmLightLib 是由 Laurent Bugnion 创建的两个不同的 MVVM 框架。

MvvmLight 是一个轻量级的 MVVM(Model-View-ViewModel)框架,它提供了一些基本功能来帮助开发人员实现 MVVM 模式。MvvmLight 框架可以在多个平台(包括 WPF、Windows 10 UWP、Xamarin 等)上使用,并且易于扩展和自定义。

MvvmLightLib 是 MvvmLight 框架的扩展版本,它包含了更多的功能和工具,比如深度集成的 IOC 容器 SimpleIoc、Messenger 用于 ViewModel 间通信、设计时数据支持等。MvvmLightLib 更适合于大型项目和需要更丰富功能集的应用程序。

因此,MvvmLight 是一个轻量级的框架,而 MvvmLightLib 包含更多的功能和工具,可以满足更复杂的应用程序需求。

2.WPF MVVM项目结构

在 WPF MVVM 项目中,通常采用以下的结构:

复制代码
Solution
├─ ProjectName.Core         # 项目核心层,定义模型和服务等
├─ ProjectName.Infrastructure # 基础设施层,包含与数据访问相关的代码
├─ ProjectName.Modules       # 模块层,按功能划分为不同的模块
├─ ProjectName.Resources     # 资源文件夹,包含图像、样式表等资源
├─ ProjectName.Services      # 服务层,包含与业务逻辑相关的代码
├─ ProjectName.Tests         # 测试项目
└─ ProjectName.UI            # UI 层,包含视图和视图模型
    ├─ Views                 # 视图文件夹,包含 XAML 文件
    └─ ViewModels            # 视图模型文件夹,包含视图模型代码

其中,ProjectName.UI 是项目的界面层,包括视图和视图模型。在 Views 文件夹中,可以按照功能或者模块来组织视图文件。在 ViewModels 文件夹中,可以按照视图文件来组织视图模型文件。

ProjectName.Core 层包含了项目的核心代码。这一层通常包括模型、枚举和服务等代码。

ProjectName.Infrastructure 层是基础设施层,包含了与数据访问相关的代码。这一层通常使用 Repository 模式来封装数据访问代码。

ProjectName.Modules 层是模块层,按照功能或者模块来划分不同的模块。每个模块可以包含视图、视图模型、模型和服务等相关代码。

ProjectName.Resources 层包含了项目的资源文件,包括图像、样式表等资源。

ProjectName.Services 层是服务层,包含了与业务逻辑相关的代码。这一层通常使用依赖注入来管理服务。

ProjectName.Tests 层是测试项目,用于编写单元测试和集成测试。

这样的结构可以有效地组织项目代码,使得代码清晰可读,易于维护和扩展。

3.WPF MVVM模式和WPF Prism区别

WPF MVVM模式和WPF Prism是两种不同的开发模式,它们之间有以下区别:

WPF MVVM模式

  • MVVM代表Model-View-ViewModel(模型-视图-视图模型),是一种用于构建WPF应用的架构设计模式。
  • MVVM通过将用户界面与业务逻辑分离,提高了代码的可维护性、可测试性和可扩展性。
  • 在MVVM中,视图(View)定义UI元素,视图模型(ViewModel)管理视图所需的数据和行为,而模型(Model)表示应用程序的状态和业务逻辑。

WPF Prism

  • Prism是一个基于WPF和Silverlight的框架,旨在帮助开发人员构建具有复杂用户界面的企业级应用程序。
  • Prism采用了一系列最佳实践和设计模式,包括MVVM、依赖注入等,以提供更好的代码结构和灵活性。
  • 与MVVM不同,Prism还提供了一组工具和服务来简化应用程序的开发,例如事件聚合器、导航框架、模块化等。

总的来说,WPF MVVM模式和WPF Prism都是在WPF应用程序开发中使用的重要概念。MVVM模式强调如何将界面与业务逻辑分离,而Prism是一个更全面的框架,提供了额外的工具和服务来简化开发过程。
WPF MVVM增删改查案例

https://download.csdn.net/download/caoyanchao1/87704896

项目知识:

1.RelayCommand 是一种在C#中使用的命令模式实现,它可以将UI元素的事件与执行代码的动作联系起来。通常用于MVVM架构中绑定到WPF和UWP应用程序中。

2.RelativeSource属性用于在XAML中绑定到目标元素的某些特定属性。相对源属性主要用于动态绑定的场景,其中目标元素的位置可能会更改或需要根据其他条件更改绑定。通过RelativeSource属性,可以引用目标元素的类、父级、祖先等。

使用RelativeSource属性时,必须指定Mode属性,以确定如何定位相对源。例如,FindAncestor选项可用于查找父元素并绑定到其属性。

3.ObservableCollection 是 C# 中的一个泛型集合类,它继承自 System.Collections.ObjectModel.Collection 类。与普通的 Collection 不同,ObservableCollection 可以在集合发生变化时自动触发事件通知其他对象更改。

简单来说,ObservableCollection 可以让开发者方便地在集合的项目增加、删除或修改时,自动地通知 UI 组件和其他相关的对象进行更新。这也是它常被用于数据绑定的原因之一

参考

走进WPF之MVVM完整案例_wpf示例_公子小六的博客-CSDN博客

相关推荐
myenjoy_113 小时前
大规模采集架构——从单台网关到千点集群
架构·wpf
Chris _data18 小时前
c#学习WPF笔记(一)
学习·c#·wpf
FuckPatience1 天前
WPF 自定义容器控件的布局
wpf
逆境不可逃1 天前
深入理解 SingleFlight:从单机到分布式的请求合并方案全解析
分布式·wpf
TDengine (老段)2 天前
TDengine 逻辑计划生成 — 从 AST 到关系代数算子树
大数据·数据库·物联网·wpf·时序数据库·tdengine·涛思数据
小二·3 天前
微服务架构设计与实践
微服务·架构·wpf
暖馒3 天前
WPF-Prism学习入门步骤记录
学习·wpf
baivfhpwxf20233 天前
雷赛(Leadshine)EtherCAT 数字 I/O 模块(如 EMC-E5064-8)的状态指示灯(I/O 状态)说明
c#·wpf
故渊at3 天前
第二板块:Android 四大组件标准化学理 | 第十二篇:四大组件全景总结与系统服务(System Server)架构
android·架构·wpf·四大组件·system service
伶俜664 天前
# [特殊字符] 零基础学 ArkUI 数据持久化(专题三):5 种存储方案深度对比
学习·华为·wpf·harmonyos