如何使用 xamarin 形式的 Task 设置基本的 AsyncCommand

问题描述

工具:我使用的是 Xamarin.form MVVM。

问题:如何使用 Task 设置基本的 AsyncCommand 命令?

调试:我没有收到任何错误,当我点击按钮时,displayBox 警报没有出现。我检查并发现 addcommand 方法没有立即运行。

绑定:我也将 View 与 viewmodel 绑定

 BindingContext = new Productviewmodel();

我看了微软的教程,似乎工作得很好。我错过了什么吗?

查看页面

<Button Text="Add" Command="{Binding AddCommand}" />

viewmodel 页面

public class Productviewmodel : INotifyPropertyChanged
    {
       ...
      public AsyncCommand AddComamnd { get; }
       
      public Productviewmodel()
      {
        ...
        AddComamnd = new AsyncCommand(OnAddComamnd);
       }

  public async Task OnAddComamnd()
    {
        await App.Current.MainPage.displayAlert("Alert","You have been alerted","OK");
      // I have also tried both (App and Application) neither works
    }
}

解决方法

好的,首先有很多错别字,你把 AddCommand 放在这里:

<Button Text="Add" Command="{Binding AddCommand}" />

所以你需要相同的命令名称:

public Command AddCommand { get; }

那么:

public ProductViewModel()
{
    ...
    AddCommand = new Command(async () => await OnAddComamnd()); //OnAddCommamnd is your async task
}

你可以在这里观看命令:Episode 5: MVVM & Data Binding with Xamarin.Forms start at minute 22