MVVM(模型-视图-视图模型)C# 是一种生成控制 WPF 平台核心功能的客户端应用程序的技术,可以轻松对应用程序功能进行单元测试。 MVVM(模型-视图-视图模型)是一种架构模式,表示三个不同的组件。它是软件的设计模式,用于分离用户界面控件和程序逻辑。
MVVM(模型-视图-视图模型)是一种软件设计模式,象征着三个独立的组件:模型、视图和视图模型。
要了解这三个组件,让我们看看它们如何协同工作,如下所示:
模型-视图-视图模型(MVVM)的使用是一种将用户界面控件和程序逻辑分离的架构软件设计模式。它也称为 Model-View-Binder,由 Microsoft 架构师开发。
这三个组件作为一个团队通过以下模式相互引用,如下所示:
最重要的是 ViewModel 和 View 能够通过两种称为数据绑定的方法进行通信。通信的最重要组件是名为 INotifyPropertyChanged 的接口。
要使用此方法,View 必须通过客户端输入一直更改 ViewModel 中的信息,并且 ViewModel 必须使用通过 Model 中的过程更新的信息来更新 View,或者更新 View来自存储库的信息。 MVVM(模型视图视图模型)架构高度重视每一层的关注点分离。通过分层,还有更多好处。让我们看看以下内容。
让我们看看ViewModel的职责如下:
创建新的 WPF 应用程序项目以更好地理解 ViewModel。
接下来为 Model、View 和 ViewModel 创建三个文件夹,并删除现有的 ManiWindow.xaml,只重新开始。
接下来,构建新项目以及每个对应于单独组件的项目。
在视图文件中,修改 App.xaml 以指向新视图,如下所示。
代码:
ViewModel:
在 ViewModel 中,首先从构建 ViewModel 开始,该类应包含名为 INotifyPropertyChanged 的接口,以声明 PropertyChangedEventHandler 事件并构建引发该事件的方法。接下来,声明字段和相关属性并确保调用属性中的OnPropertyChanged()方法作为设置访问权限。让我们以编程方式查看示例,其中构造函数用于显示模型并向 ViewModel 提供数据。
代码:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Runtime.CompilerServices; using System.Text; using System.Threading.Tasks; using MyMVVMProject.Model; namespace MyMVVMProject.ViewModel { // the interface INotifyPropertyChanged implements for supporting the binding purpose public class HelloWorldViewModel : INotifyPropertyChanged { private string _helloString; public event PropertyChangedEventHandler PropertyChanged; public string HelloString { get { return _helloString; } set { helloString = value; OnPropertyChanged(); } } /// <summary> /// when the Property modifies it Raises OnPropertychangedEvent /// </summary> /// <param name="name">Property name represented by String</param> protected void OnPropertyChanged([CallerMemberName] string name = null) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); } public HelloWorldViewModel() { HelloWorldModel hwModel1 = new HelloWorldModel(); _helloString = hwModel1.ImportantInfo; } } }
型号:
然后是Model的创建,它通过从存储库中拖拽数据来为ViewModel提供数据,并且会返回到存储库中进行存储。这里用 GetInfo () 方法解释该程序,该方法返回简单列表
代码:
private List<string> GetInfo () { repositoryData = new List<string>() { "Hello", "world" }; return repositoryData; }
让我们看看下面的代码:
代码:
查看:
最后,我们需要创建一个View;它没什么,但必须在 XAML 中包含一些代码;该窗口需要对 ViewModel 命名空间的引用。然后将其映射到 XAML。最主要的是要确保绑定ViewModel的属性,它显示标签内容。
代码:
在本文中,我们看到 MVVM C# 有助于设计人员和开发人员以最少的技术复杂性进行协作。
以上是MVVM C#的详细内容。更多信息请关注PHP中文网其他相关文章!