如果我没有从View中传递任何内容,则可以进行以下工作。
View.cs
ViewModel.ReloadCommand.Execute(null);
ViewModel.cs
public ICommand ReloadCommand
{
get
{
return new MvxCommand(async () =>
{
await RefreshStudentList();
});
}
}
但是我需要传递一个参数,我不知道该怎么办?
ViewModel.ReloadCommand.Execute(xxx);
ViewModel.cs
public ICommand ReloadCommand
{
get
{
return new MvxCommand(async () =>
{
await RefreshStudentList(xxx);
});
}
}
最佳答案
为了执行异步操作,MvvmCross还具有一个MvxAsyncCommand
,它也可以采用一个参数作为常规MvxCommand
。
看起来像这样:
public ICommand ReloadCommand
{
return new MvxAsyncCommand(DoAsyncStuff);
}
private Task DoAsyncStuff(MyType type)
{
}
任何命令都可以使用如下参数执行:
ViewModel.ReloadCommand.Execute(myParameter);
关于c# - 通过ICommand传递参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42013547/