Xamarin Forms: использование одной и той же команды с кнопки и onAppearing не работает - PullRequest
0 голосов
/ 24 сентября 2018

Я пытаюсь автоматически войти в систему при запуске приложения.Поэтому я создал следующую команду в моей ViewModel:

public Command LoginCommand { get; private set; }

public LoginViewModel()
{
    LoginCommand = new Command(async () => await Login());
}

Код XAML выглядит следующим образом:

<Button Text="Login" Command="{Binding LoginCommand}" Style="{StaticResource LoginButton}"/>

Так что это работает хорошо, если я не использую ту же командуBindingcontext в методе onAppearing соответствующей страницы:

protected override async void OnAppearing()
{
    base.OnAppearing();
    if (LoginVM.AutoLogin)
    {
        LoginVM.LoginCommand.Execute(null);
    }
}

В результате, как только страница появляется, процедура входа в систему выполняется правильно.Однако, если вход не удается (например, из-за тайм-аута), ничего не произойдет, если я снова нажму кнопку входа в систему .

Интересная часть заключается в том, что если я добавлю обработчик события "Clicked" к кнопке и оттуда выполню команду LoginCommand вручную, это сработает.

Может кто-нибудь сказать мне, почему код ведет себя такэто?

Большое спасибо заранее!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...