首页 > 解决方案 > 打开页面的我的按钮不起作用。使用 Xamarin(C#、XAML)并将项目重组为 MVVM

问题描述

我刚刚使用 Eduardo Rosas 关于 Xamarin 的教程将我的 Xamarin 项目重组为 MVVM。我无法让“开始”按钮在 Android 模拟器启动的第一页上工作。根据 Eduardo 所做的,它看起来是正确的。这是“登陆页面”(应用程序加载的第一页)的 XAML。

用于打开页面(登陆页面)的 XAML

用于打开页面(登陆页面)的 XAML

这是登陆页面(应用程序的第一页)背后的代码代码:

代码背后

在此处输入图像描述

这是登录页面的视图模型:

查看登陆页面的模型

在此处输入图像描述

这是调用 Begin_Button_tapped 的 PickFromThreePageCommand.cs 的 ICommand:

指令

在此处输入图像描述

PickFromThreePage 有三个按钮,也是 Begin_Button_Tapped 导航的页面。当我在我的 Android 模拟器上运行该应用程序时,LandingPage 出现,我单击“开始”按钮,它显示失真,就像它知道它正在被点击但没有导航到下一页...PickFromThreePage。以下是模拟器的选择:

在此处输入图像描述

以下是 PickFromThreePageVM 的一个选择,只是为了更好地衡量:

在此处输入图像描述

编辑:我的 Begin_Button_Taped() 没有导航的“异步”和“等待”。它仍然不起作用,但我想我会添加这个。

标签: c#xamlxamarinxamarin.forms

解决方案


首先,永远不要将您的代码作为图像发布。

让我们开始吧,所以你的代码和 XAML 都很好,来到你的视图模型我相信你让它太复杂了,你的按钮 ICommand 应该看起来像这样:(所有这些都应该在你的 VM 中)

  Public ICommand PickFromThreePageCommand {get; set;}

然后在您的构造函数中初始化它:

   public LandingPageVM
  {
      PickFromThreePageCommand= new Command(PickFromThreePage)
  }

然后定义这样的方法:

    private void PickFromThreePage(object obj)
   {
              // Click event code
   }

推荐阅读