c# - 打开页面的我的按钮不起作用。使用 Xamarin(C#、XAML)并将项目重组为 MVVM
问题描述
我刚刚使用 Eduardo Rosas 关于 Xamarin 的教程将我的 Xamarin 项目重组为 MVVM。我无法让“开始”按钮在 Android 模拟器启动的第一页上工作。根据 Eduardo 所做的,它看起来是正确的。这是“登陆页面”(应用程序加载的第一页)的 XAML。
用于打开页面(登陆页面)的 XAML
这是登陆页面(应用程序的第一页)背后的代码代码:
代码背后
这是登录页面的视图模型:
查看登陆页面的模型
这是调用 Begin_Button_tapped 的 PickFromThreePageCommand.cs 的 ICommand:
指令
PickFromThreePage 有三个按钮,也是 Begin_Button_Tapped 导航的页面。当我在我的 Android 模拟器上运行该应用程序时,LandingPage 出现,我单击“开始”按钮,它显示失真,就像它知道它正在被点击但没有导航到下一页...PickFromThreePage。以下是模拟器的选择:
以下是 PickFromThreePageVM 的一个选择,只是为了更好地衡量:
编辑:我的 Begin_Button_Taped() 没有导航的“异步”和“等待”。它仍然不起作用,但我想我会添加这个。
解决方案
首先,永远不要将您的代码作为图像发布。
让我们开始吧,所以你的代码和 XAML 都很好,来到你的视图模型我相信你让它太复杂了,你的按钮 ICommand 应该看起来像这样:(所有这些都应该在你的 VM 中)
Public ICommand PickFromThreePageCommand {get; set;}
然后在您的构造函数中初始化它:
public LandingPageVM
{
PickFromThreePageCommand= new Command(PickFromThreePage)
}
然后定义这样的方法:
private void PickFromThreePage(object obj)
{
// Click event code
}
推荐阅读
- haskell - 删除 GHCI 中定义的函数
- kubernetes - Kubernetes 动态卷供应的效率如何?
- python - 编写多个字典介绍 csv 文件
- jmeter - 如何将 Jenkins 与 Jmeter 集成
- solr - Solr上查询,限制每天的行数
- r - rstan C++14 安装时出错(centos)
- java - 哪个java库可以创建这样的pdf文件?
- javascript - 如何在反应 ag-grid 中验证行选择?
- java - 解析日期时间时出错,带有有效时间戳的 DateTimeParseException
- mysql - 从 3 个不同的列中选择不同的记录