Xamarin 使用不带 lambda 的异步方法形成命令

Xamarin Forms Commands with Async Methods without lambda

我正在尝试将异步方法传递给 xamarin 表单中的命令。在 Microsoft 文档中,示例代码使用 lambda 表达式提供。由于我是 c# 的新手,我想看看它的显式形式以清楚地理解这个概念:

带有lambda的代码:

public partial class MainPage : ContentPage
{
    public MainPage()
    {
        InitializeComponent();
        NavigateCommand = new Command<Type>(
            async (Type pageType) =>
            {
                Page page = (Page)Activator.CreateInstance(pageType);
                await Navigation.PushAsync(page);
            });
        BindingContext = this;
    }
    public ICommand NavigateCommand { private set; get; }
}

所以,我的问题是如何在没有 lambda 的情况下重新键入 NavigationCommand。我认为这对初学者更有好处。 非常感谢任何回复。

您可以查看以下代码

NavigateCommand = new Command<Type>((pageType) => TestCommand(pageType));
async void TestCommand(Type pageType)
{
  Page page = (Page)Activator.CreateInstance(pageType);
  await Navigation.PushAsync(page);
}

如果你的方法没有参数,你可以像

那样初始化它
NavigateCommand = new Command(TestCommand);
async void TestCommand()
{
   //...      
}