📝 MVVM教程

19篇技术文档
  MVVM教程

📅  最后修改于: 2020-11-19 05:19:27        🧑  作者: Mango

每个优秀的开发人员都希望并尝试创建最复杂的应用程序来取悦用户。在大多数情况下,开发人员是在应用程序的第一个版本上实现此目标的。但是,添加新功能后,由于代码复杂,很难在不考虑应用程序代码结构的情况下修复错误。为此,需要良好的干净代码结构。在本教程中,您将学习如何使用MVVM模式来减少代码复杂性以及如何维护代码的干净和可重用结构。本教程是为想要学习如何使用干净的代码结构开发高质量应用程序的软件开发人员...

  MVVM –介绍

📅  最后修改于: 2020-11-19 05:19:51        🧑  作者: Mango

组织代码的井井有条,并且可能是最可重用的方法是使用“ MVVM”模式。Model,View,ViewModel(MVVM模式)全都指导您如何组织和结构代码以编写可维护,可测试和可扩展的应用程序。模型-它仅保存数据,与任何业务逻辑无关。ViewModel-它充当模型和视图之间的链接/连接,使东西看起来漂亮。视图-它仅保存格式化的数据,并将所有内容委托给模型。分开的演讲为了避免由于将应用程序逻辑置于代...

  MVVM的优点

📅  最后修改于: 2020-11-19 05:20:10        🧑  作者: Mango

MVVM模式最终是MVC模式的现代结构,因此提供域逻辑和表示层之间的清晰分隔的主要目标仍然是相同的。这是MVVM模式的一些优点和缺点。关键好处是,视图和模型之间可以实现真正的分离,而不仅可以实现分离,而且可以从中获得效率。实际上,这意味着当需要更改模型时,可以轻松更改模型,而视图则不需要更改,反之亦然。应用MVVM产生了三个重要的关键事项,如下所示。可维护性完全区分不同种类的代码应该可以更轻松地进...

  MVVM –职责

📅  最后修改于: 2020-11-19 05:20:36        🧑  作者: Mango

MVVM模式由三部分组成-模型,视图和视图模型。刚开始时,大多数开发人员对Model,View和ViewModel应该包含或不应该包含什么以及每个部分的职责感到困惑。在本章中,我们将学习MVVM模式的每个部分的职责,以便您可以清楚地了解哪种代码在哪里。 MVVM实际上是客户端的分层体系结构,如下图所示。表示层由视图组成。逻辑层是视图模型。表示层是模型对象的组合。产生并保留它们的客户端服务可以在两层...

  MVVM –第一个应用程序

📅  最后修改于: 2020-11-19 05:21:04        🧑  作者: Mango

在本章中,我们将学习如何将MVVM模式用于简单的输入屏幕和您可能已经习惯的WPF应用程序。让我们看一个简单的示例,在该示例中,我们将使用MVVM方法。步骤1-创建一个新的WPF应用程序项目MVVMDemo。步骤2-将三个文件夹(Model,ViewModel和Views)添加到您的项目中。第3步-在Model文件夹中添加StudentModel类,并将以下代码粘贴到该类中步骤4-将另一个Stude...

  MVVM –连接视图

📅  最后修改于: 2020-11-19 05:21:53        🧑  作者: Mango

在本章中,我们将介绍将视图连接到ViewModel的不同方法。首先,让我们看一下View first结构,可以在XAML中对其进行声明。正如我们在上一章中看到的示例一样,我们从主窗口连接了一个视图。现在,我们将看到其他连接视图的方法。在本章中,我们还将使用相同的示例。以下是相同的Model类实现。这是ViewModel类的实现。这次在默认构造函数中调用LoadStudents方法。无论视图是窗口,...

  MVVM –连接ViewModel

📅  最后修改于: 2020-11-19 05:22:27        🧑  作者: Mango

在本章中,我们将介绍如何连接ViewModel。这是我们讨论“视图优先”构造的最后一章的继续。现在,第一种构造的下一个形式是元模式,称为ViewModelLocator。它是伪模式,位于MVVM模式的顶部。在MVVM中,每个视图都需要连接到其ViewModel。ViewModelLocator是一种简单的方法,可以集中代码并进一步分离视图。这意味着它不必显式了解ViewModel类型以及如何构造它...

  MVVM – WPF数据绑定

📅  最后修改于: 2020-11-19 05:22:50        🧑  作者: Mango

在本章中,我们将学习数据绑定如何支持MVVM模式。数据绑定是使MVVM与其他UI分离模式(例如MVC和MVP)区别开来的关键功能。对于数据绑定,您需要构造一个视图或一组UI元素,然后需要绑定要指向的其他一些对象。视图中的UI元素绑定到ViewModel公开的属性。构建View和ViewModel的顺序取决于情况,因为我们首先介绍了View。构造一个View和ViewModel,并将View的Dat...

  MVVM – WPF数据模板

📅  最后修改于: 2020-11-19 05:23:23        🧑  作者: Mango

模板描述了控件的整体外观和视觉外观。对于每个控件,都有一个与之关联的默认模板,该模板为该控件提供外观。在WPF应用程序中,当您要自定义控件的视觉行为和外观时,可以轻松创建自己的模板。逻辑和模板之间的连通性可以通过数据绑定来实现。在MVVM中,还有另一种主要形式,称为ViewModel first构造。ViewModel的第一种构造方法利用WPF中的隐式数据模板的功能。隐式数据模板可以自动从当前资源...

  MVVM –视图/ ViewModel通信

📅  最后修改于: 2020-11-19 05:24:04        🧑  作者: Mango

在本章中,我们将学习如何向MVVM应用程序添加交互性以及如何干净地调用逻辑。您还将看到,所有这些都是通过保持松耦合和良好的结构来完成的,这是MVVM模式的核心。要了解所有这些,首先让我们了解命令。通过命令进行View / ViewModel通信命令模式已被很好地记录下来,几十年来经常使用设计模式。在这种模式下,有两个主要参与者,调用者和接收者。召唤者调用程序是一段可以执行命令式逻辑的代码。通常,它...

  MVVM –层次结构和导航

📅  最后修改于: 2020-11-19 05:24:52        🧑  作者: Mango

构建MVVM应用程序时,通常将复杂的信息屏幕分解为一组父视图和子视图,其中子视图包含在面板或容器控件的父视图内,并形成使用层次。分解复杂的视图后,这并不意味着您分离为自己的XAML文件的每个子内容都必须是MVVM视图。内容块仅提供将某些内容呈现到屏幕的结构,不支持用户对该内容的任何输入或操作。它可能不需要单独的ViewModel,但可能只是基于父级ViewModel公开的属性呈现的大块XAML。最...

  MVVMÂ验证

📅  最后修改于: 2020-11-19 05:25:34        🧑  作者: Mango

在本章中,我们将学习验证。我们还将研究一种干净的方法来验证WPF绑定已支持的内容,并将其绑定到MVVM组件中。MVVM中的验证当您的应用程序开始接受来自最终用户的数据输入时,您需要考虑验证该输入。确保它符合您的总体要求。WPF在绑定系统中具有一些很棒的构建和功能,用于验证输入,并且在执行MVVM时,您仍然可以利用所有这些功能。请记住,支持您的验证并定义哪些规则存在的逻辑应该属于Model或View...

  MVVM –依赖注入

📅  最后修改于: 2020-11-19 05:26:09        🧑  作者: Mango

在本章中,我们将简要讨论依赖注入。我们已经介绍了将视图和ViewModel彼此分离的数据绑定,这些视图使View和ViewModel可以进行通信,而无需明确知道通信另一端的情况。现在,我们需要类似的东西来将ViewModel与客户端服务分离。在面向对象编程的早期,开发人员面临着在应用程序中创建和检索类实例的问题。针对该问题已经提出了各种解决方案。在过去的几年中,依赖注入和控制反转(IoC)在开发人...

  MVVM –事件

📅  最后修改于: 2020-11-19 05:26:35        🧑  作者: Mango

事件是一种编程构造,可对状态变化做出反应,通知已注册通知的所有端点。首先,事件用于通过鼠标和键盘通知用户输入,但是它们的用途不限于此。每当检测到状态更改时,也许当对象已加载或初始化时,都可以触发事件以警告任何感兴趣的第三方。在使用MVVM(Model-View-ViewModel)设计模式的WPF应用程序中,视图模型是负责处理应用程序的表示逻辑和状态的组件。视图的代码隐藏文件不应包含任何代码来处理...

  MVVMÂ单元测试

📅  最后修改于: 2020-11-19 05:27:13        🧑  作者: Mango

单元测试背后的想法是采用离散的代码块(单元)并编写以预期方式使用该代码的测试方法,然后进行测试以查看它们是否获得了预期的结果。作为代码本身,单元测试就像项目的其余部分一样进行编译。它们也由运行测试的软件执行,该软件可以加快每个测试的速度,有效地表示赞成或反对,分别表示测试已通过或失败。让我们看一下前面创建的示例。以下是学生模型的实现。以下是StudentView的实现。以下是StudentView...