xamarin - Xamarin Forms:从按钮和 onAppearing 使用相同的命令不起作用
问题描述
我正在尝试在启动应用程序时自动登录用户。因此,我在 ViewModel 中创建了以下命令:
public Command LoginCommand { get; private set; }
public LoginViewModel()
{
LoginCommand = new Command(async () => await Login());
}
XAML 代码如下所示:
<Button Text="Login" Command="{Binding LoginCommand}" Style="{StaticResource LoginButton}"/>
因此,只要我不在相应页面的 onAppearing 方法中使用 Bindingcontext 的相同命令,这就会很好地工作:
protected override async void OnAppearing()
{
base.OnAppearing();
if (LoginVM.AutoLogin)
{
LoginVM.LoginCommand.Execute(null);
}
}
发生的情况是,一旦页面出现,登录过程就会正确执行。但是,如果登录失败(例如由于超时),如果我再次单击登录按钮,则不会发生任何事情。
有趣的是,如果我向按钮添加“Clicked”事件处理程序并从那里手动执行 LoginCommand,它就可以工作。
有人能告诉我,为什么代码会这样吗?
非常感谢您!
解决方案
推荐阅读
- python - 数学图的python代码
- javascript - 从客户端到服务器端的 Ajax Post 以记录错误
- menu - 我可以在响应式网站中使用不同的移动菜单吗?对于 SEO 的观点和加载时间
- java - How to select any random menu/option from div tag?
- scheme - 方案反转值
- dynamics-crm - 如何在 Dynamics crm 2016 中克隆记录(服务器端)?
- docker - Logstash Kafka 输入无法连接
- corda - 我可以创建一个带有空方的 Corda 状态吗?
- python - 我如何从一个带有美丽汤的单词汤中得到一个特定的词组?
- php - 如果另一个连接为空,Laravel Eloquent 和 Mysql 连接一个表