c# - Xamarin.Forms 的 MVVM 实际示例?

标签 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 carsTable = carSales.SalesMade();
    DatagridSales.datasource = carsTable;
}

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

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

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

最佳答案

所以只是详细说明命令及其工作原理。

举一个简单的登录按钮示例。

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

public ICommand LoginCommand {get; set;};

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

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

LoginCommand = new Command(Login);

登录操作对应于 ViewModel 中的方法,如下所示:

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

最后,在您的 View 中将命令绑定(bind)到您的控件(在本例中为登录按钮):

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

关于c# - Xamarin.Forms 的 MVVM 实际示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54555191/

相关文章:

c# - 是否可以将 C# 双列表中的所有元素划分为该双列表元素总和(这使得总计 = 1)

swift - 如何为该SwiftUI核心数据模型正确插入排序描述符?

Xamarin (Visual Studio) 中的 Android 模拟器无法在 ASUS UX410U 笔记本中启动 - Windows 10

c# - XAML 动态更改字体大小 iOS Xamarin 应用程序

c# - 在互操作 C# 期间延迟 excel 计算

c# - 以编程方式指定运算符

c# - 为什么这个带有 Expression<Func<T,bool> 的模拟不匹配?

wpf - View 模型的数据网格行选择/焦点

c# - UWP中的MVVM验证

c# - 登录 Xamarin Forms 后更改页面