问题描述
工具:我使用的是 Xamarin.form MVVM。
问题:如何使用 Task 设置基本的 AsyncCommand 命令?
调试:我没有收到任何错误,当我点击按钮时,displayBox 警报没有出现。我检查并发现 addcommand 方法没有立即运行。
绑定:我也将 View 与 viewmodel 绑定
BindingContext = new Productviewmodel();
我看了微软的教程,似乎工作得很好。我错过了什么吗?
查看页面
<Button Text="Add" Command="{Binding AddCommand}" />
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