C# 用于Xamarin.Forms的MVVM的实际示例?

C# 用于Xamarin.Forms的MVVM的实际示例?,c#,mvvm,xamarin.forms,visual-studio-2017,C#,Mvvm,Xamarin.forms,Visual Studio 2017,自从我开始学习Xamarin.Forms以来,我就知道MVVM是首选的体系结构。这对我来说都是新鲜事,所以请耐心点 在工作中,典型的应用程序(asp.net或Windows窗体)将包含一个事件处理程序,该程序调用一个方法并将其显示到UI控件中: private void buttonShow_Click(object sender, EventArgs e) { Vendors.Sales carSales = new Vendors.Sales(); DataTable car

自从我开始学习
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.salesmake
是一种存在于某个地方的方法,它返回我在UI中显示的列表。我不知道什么是汽车销售;我只知道它返回一个
datatable

这正是我想要应用到我的初学者移动应用程序中的想法。问题是,我还没有找到一个简单的工作示例来实现我想要实现的这个非常简单的功能。我发现的大多数例子都是如此复杂,以致于它们混淆而不是帮助


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

问题是,在MVVM中不应该使用事件处理程序。在这种情况下,您应该将
命令
绑定到按钮。

因此,请详细说明命令及其工作方式

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

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

public ICommand LoginCommand {get; set;};
该命令需要在触发该命令时调用一个操作

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

LoginCommand = new Command(Login);
登录操作对应于ViewModel中的方法,如下所示:

private void Login()
{
   //do login stuff
}  
最后,在您的视图中,您将命令绑定到控件(在本例中为登录按钮):

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

我理解这一点。这就是为什么我在看一个足够简单的示例,它将实现类似的东西。