Команды Xamarin Forms с Asyn c Методы без лямбды - PullRequest
0 голосов
/ 24 апреля 2020

Я пытаюсь передать асинхронный метод команде в формах xamarin. В документах microsoft примеры кодов предоставляются с лямбда-выражениями. Поскольку я довольно новичок в c#, я хочу увидеть его в явном виде, чтобы ясно понять концепцию:

Код с лямбдой:

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; }
}

Итак, мой вопрос как перепечатать NavigationCommand без лямбды. Я думаю, что это будет более полезным для начинающих. Большое спасибо за любой ответ.

1 Ответ

0 голосов
/ 24 апреля 2020

Вы можете проверить следующий код

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()
{
   //...      
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...