首页 > 解决方案 > Xamarin.Forms 的 MVVM 的实际示例?

问题描述

自从我开始学习 以来Xamarin.Forms,我就读到这MVVM是首选的架构。这对我来说都是新的,所以请耐心等待。

在工作中,典型的应用程序(asp.net 或 Windows 窗体)将包含一个事件处理程序,该处理程序调用一个方法并将其显示到 UI 控件中:

private void buttonShow_Click(object sender, EventArgs e)
{
    Vendors.Sales carSales = new Vendors.Sales();
    DataTable carsTable = carSales.SalesMade();
    DatagridSales.datasource = carsTable;
}

carSales.SalesMade是一种存在于某处的方法,它返回我在 UI 中显示的列表。我不知道是什么carSales.SalesMade;我只知道它返回一个datatable.

我想将这个完全相同的想法应用于我的初学者移动应用程序。问题是我还没有找到一个简单的工作示例来实现 MVVM 来实现我想要完成的这个非常简单的功能。我发现的大多数示例都非常令人费解,以至于它们带来的困惑多于帮助。

所以我的问题是:如何在这个例子中实现 MVVM?可以是伪代码;它不需要构建/编译。我只是想看看它会是什么样子。

标签: c#mvvmxamarin.formsvisual-studio-2017

解决方案


因此,只是详细说明命令及其工作方式。

以一个简单的登录按钮为例。

您的 ViewModel 将有一个命令来处理登录按钮单击,如下所示:

public ICommand LoginCommand {get; set;};

该命令需要在触发命令时调用一个动作。

因此,在您的构造函数中,您可以使用以下命令初始化命令:

LoginCommand = new Command(Login);

Login Action 对应于 ViewModel 中的一个方法,如下所示:

private void Login()
{
   //do login stuff
}  

最后,在您的视图中,您将命令绑定到您的控件,在这种情况下为登录按钮:

 <Button x:Name="loginButton" Command="{Binding LoginCommand}" Text="Login" />

推荐阅读