如果我没有从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/

10-13 05:59