CommunityToolkit.Mvvm学习笔记(1)——概述

一、前言

    先简单谈谈为什么选择学习使用这个MVVM框架。
    接触.NET和WPF有一阵子了,用过WPF的应该都听说过MVVM模式,它是一种分离前后端、松耦合的模式。某种程度上来说是MVC和MVP的升级版,也一定程度上解决了前两者存在的一些问题。因为是模式,所以不仅限于WPF这一种开发,许多涉及UI的开发都会用到它,比如Vue。
    既然它这么优秀,我自然想使用它。但由于我接触.NET和WPF时间都不长,很多基础知识掌握不好,所以我决定先使用原生的MVVM,即不用任何框架,自己先徒手实现试试。这样做或许比较费力,最终做出来的东西结构设计上也不完美,但对于整个过程和实现中的一些难点上的体会会更深,在后续使用框架开发时候应该会有一些额外收获。
    确实,第一个项目做出来了,有点不伦不类,就自己硬建了几个文件夹View、Model、ViewModel,然后开始套模式,开始绑定变量,开始绑定命令。就是在绑定命令这一步上,让我觉得WPF在原生的MVVM上支持太复杂了,因为你需要自己重写有关ICommand的一切。而反观几种主流的MVVM框架(MvvmLight、Prism等)在命令的使用上都非常简洁。于是,我的第二个WPF项目也决定使用框架。
    使用框架,必然少不了选择框架。起初打算用Prism,因为相对来说,它功能最强大,支持最好。于是从NuGet下载添加进项目,然后准备开始学习,翻了翻博客,翻了翻GitHub,感觉它的学习方式主要是零零散散的博客&GitHub上的样例,说实话,不太系统(主要是我太菜,看样例太累)。于是转MvvmLight,网上都说这个框架比较轻量级,且简单易上手。确实,我搜Mvvm的时候,它出来的词条最多。于是从NuGet搜了下,好家伙!
在这里插入图片描述
似乎几年前就停更了,当然想用它,还是一点问题都没有的。但紧接着,一行小字吸引了我。
在这里插入图片描述
这是它的替代品么?怀着好奇,我点了进去。它是一个微软官方提供支持的Mvvm包,而且有着详细的文档,被称为MvvmLight的继承者。在这机缘巧合之下,我选择了它,当然好不好用还不知道,先用用看,不好用再换。总结一下,我选它是因为微软官方的 + 文档详细 +

二、MVVM Toolkit概述

    首先,放一下它的文档链接,喜欢啃文档的自己去看。
    Microsoft.Toolkit.Mvvm包(也称MVVM Toolkit)是一个现代、快速且模块化的MVVM库。它是Windows社区工具包的一部分并且围绕着以下几点原则构建的:

  • 平台和运行时库相独立 - .NET 2.0标准和.NET 5(与UI框架无关)
  • 简单易用 - 在程序结构和编码范式上没有严格要求,即使用灵活
  • 自由组件 - 自由选择要使用的组件
  • 参考实现 - 精炼且性能好,提供了基础库的接口实现,但缺乏直接使用它们的具体类型

这个包针对是.NET标准的,所以它能应用于任何平台:UWP,WinForms,WPF,Xamarin,Uno等;以及任何运行环境下:.NET Native, .NET Core, .NET Framework, or Mono。它能在它们之上运行。且API在所有情况下都是相同的,这使得它非常适合构建共享库。

    此外,MVVM工具包还有专门针对.NET 5的优化点,使得在.NET 5运行时会有更多内部优化。当然,两种情况下的API是相同的,NuGet总是会解析出包的最佳版本,而不需要用户担心API在平台上是否可用。

    在VS当中安装包:

  1. 在解决方案管理器中,右击工程,然后选择管理NuGet包。搜索Microsoft.Toolkit.Mvvm并安装它。
    在这里插入图片描述
  2. 添加一个using指令来使用API:
using Microsoft.Toolkit.Mvvm;
  1. 代码示例可以在MVVM Toolkit的其他文档页面和项目的单元测试中找到

2.1. 何时使用MVVM工具包

使用该包可以访问一组标准的、独立的、轻量级的类型,这些类型为使用MVVM模式的程序提供了起始实现。通常,这些类型本身就足以满足用户的需求,而不需要额外的外部引用。

包括的类型有:

  • Microsoft.Toolkit.Mvvm.ComponentModel
    • ObservableObject
    • ObservableRecipient
    • ObservableValidator
  • Microsoft.Toolkit.Mvvm.DependencyInjection
    • Ioc
  • Microsoft.Toolkit.Mvvm.Input
    • RelayCommand
    • RelayCommand<T>
    • AsyncRelayCommand
    • AsyncRelayCommand<T>
    • IRelayCommand
    • IRelayCommand<in T>
    • IAsyncRelayCommand
    • IAsyncRelayCommand<in T>
  • Microsoft.Toolkit.Mvvm.Messaging
    • IMessanger
    • WeakReferenceMessenger
    • StrongReferenceMessenger
    • IRecipient<TMessage>
    • MessageHandler<TRecipient, TMessage>
  • Microsoft.Toolkit.Mvvm.Messaging.Messages
    • PropertyChangedMessage<T>
    • RequestMessage<T>
    • AsyncRequestMessage<T>
    • CollectionRequestMessage<T>
    • AsyncCollectionRequestMessage<T>
    • ValueChangedMessage<T>

这个包旨在提供更多的灵活性,使得开发者能自由选择使用哪些组件。所有的类型都是松耦合的(loosely-coupled),因此只需要包含你需要用到的。当使用它们来构建程序时,没有必要完全使用特定的API,也没有一套强制性的模式要遵循。

这节的内容和标题好像没有太强烈的关系,不过硬理解一下就是如果你的程序要用Mvvm模式,你可以用这个包。且包中的众多类型你用得着的就用,用不着的就不用。

2.2. 更多资源

三、小结

这节主要是大概讲讲MVVM Toolkit是什么以及如何加入到项目中。接下来开始正式学习。

  • 11
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: communitytoolkit.mvvm datagrid 是一种基于MVVM模式的数据表格控件,该控件提供了多种数据绑定的方式,可以快速且简便地展示数据。同时,communitytoolkit.mvvm datagrid 还提供了多种功能,如单元格编辑、分页、排序、筛选等等。这让用户能够方便地处理大量数据。 在使用 communitytoolkit.mvvm datagrid 控件时,需要绑定数据源并提供列的定义,控件会自动将数据填充到表格中。在提供列定义时,可以对不同列的排序方式、列宽、列标题等进行自定义的设置。此外,还可以对每个单元格进行自定义的数据格式化。 与传统的数据表格控件不同的是,communitytoolkit.mvvm datagrid 控件遵循 MVVM 模式的设计,使得数据与 UI 分离,易于维护和扩展。通过将数据、业务逻辑与界面之间的关系明确分离,可以大大提高应用程序的可读性、可扩展性和可维护性。 总的来说,communitytoolkit.mvvm datagrid 是一款功能强大且易于使用的数据表格控件,通过采用 MVVM 模式,可以使数据与 UI 分离,极大地提高应用程序的可读性、可扩展性和可维护性。无论是处理大量数据、展示分页数据、自定义数据格式化等,都是 communitytoolkit.mvvm datagrid 优秀的解决方案。 ### 回答2: CommunityToolkit.Mvvm 是一个帮助开发人员实现 MVVM 模式在 UWP 和 WPF 应用程序中的工具包。这个工具包提供了丰富的控件和类库,使得我们能够更加方便地使用 MVVM 模式来构建应用程序。 其中,DataGrid 控件是 CommunityToolkit.Mvvm 中非常重要的一个控件,它允许我们以表格的形式展示数据,并且支持排序、筛选、列隐藏等基本功能。除此之外,CommunityToolkit.Mvvm 的 DataGrid 还支持分页和自定义单元格样式等高级功能,这些功能都使得我们更加容易构建强大可靠的应用程序。 在使用 CommunityToolkit.Mvvm 的 DataGrid 控件时,我们需要定义一些属性和命令,在 ViewModel 中实现数据的加载、数据的操作等逻辑处理。具体而言,我们需要定义 DataGrid 的 ItemsSource 属性,这个属性绑定到 ViewModel 中的数据集合,然后定义排序、筛选等命令,使得用户点击控件时能够实现相应的逻辑操作。 总之,CommunityToolkit.Mvvm 提供的 DataGrid 控件是一个非常实用的控件,它能够大大简化我们构建 MVVM 应用程序的过程。通过这个控件,我们能够快速轻松地展现数据,同时也能够支持高级功能,使得我们能够更加专注于应用程序的逻辑设计和开发。 ### 回答3: communitytoolkit.mvvm datagrid 是一个开源的工具包,旨在为使用 MVVM 模式的开发人员提供一个易于使用和高度可定制的数据网格。该工具包是由 Microsoft 社区开发的,可以使用 NuGet 包管理器轻松安装和集成到您的应用程序中。 该工具包使用 C# 和 XAML 构建,支持 WPF 和 UWP 平台。它提供了许多有用的功能,如排序、筛选和分页,使用户能够更轻松地浏览和操作数据。此外,它还提供了高度可定制的外观和行为选项,以便开发人员可以使其适应他们的应用程序的视觉设计和用户体验。 与传统的数据网格不同,使用 communitytoolkit.mvvm datagrid 可以使用 MVVM 模式进行数据绑定和操作,将视图逻辑与数据逻辑分离。这使得应用程序更易于维护和扩展,并提高了代码的可重用性和可测试性。此外,它还提供了一个非常灵活的 API,使用户可以轻松地自定义和扩展其功能和行为。 总的来说,communitytoolkit.mvvm datagrid 是一个非常有用的工具包,为开发人员提供了一个高度可定制的数据网格,支持 MVVM 模式,使其更易于使用和维护。如果你正在开发一个需要展示和操作数据的应用程序,那么这个工具包是值得一试的。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值