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

问题描述 投票:0回答:1

我正在尝试将异步方法传递给xamarin形式的命令。在microsoft docs中,示例代码随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。我认为这对初学者会更有利。非常感谢您的回复。

xamarin asynchronous command
1个回答
0
投票

您可以检查以下代码

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

如果您的方法没有参数,则可以像]进行初始化>

NavigateCommand = new Command(TestCommand);
async void TestCommand()
{
   //...      
}
© www.soinside.com 2019 - 2024. All rights reserved.