Как перейти на страницу меню после авторизации? - PullRequest
0 голосов
/ 13 марта 2019

Я только несколько дней работаю с Xamarin Forms и пытаюсь сделать это в архитектуре MVVM.Как я могу загрузить следующую страницу (домашняя страница / страница меню) после этого, если еще заявления?Так ли я сделал это правильно?Мои инструкции заключались в том, что должна быть проверка электронной почты, а пароль не может быть менее 6 символов.

    public User User 
    {
      get { return user; }
      set { user = value; }
    }

    public Command LoginCommand 
    {
      get 
      {
        return new Command(() => 
        {
          bool usr = string.IsNullOrEmpty(User.Username);
          bool pass = string.IsNullOrEmpty(User.Password);

          if (usr && pass) 
          {
            App.Current.MainPage.DisplayAlert("Error", "Please enter Credentials", "OK");
          } 
          else 
          {
            if (EmailRegex.IsMatch(User.Username)) 
            {
              if (pass) 
              {
                App.Current.MainPage.DisplayAlert("Error", "Please enter password!", "OK");
              } 
              else if (User.Password.Length < 6) 
              {
                App.Current.MainPage.DisplayAlert("Error", "Password must be at least 6 characters", "OK");
              } 
              else 
              {
                //load menu page
              }
            } 
            else 
            {
              App.Current.MainPage.DisplayAlert("Error", "Email is not a valid email address!", "OK");
            }
          }
        });
      }
    }

    Regex EmailRegex = new Regex(@ "^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$");

    public bool ValidateEmail(string email) 
    {
      if (string.IsNullOrWhiteSpace(email))
        return false;

      return EmailRegex.IsMatch(email);
    }
  }
}

Ответы [ 2 ]

0 голосов
/ 05 июня 2019

Убедитесь, что вы указали MainPage как страницу навигации в App.xaml.cs

MainPage = new NavigationPage(new Page1());

затем используйте

Navigation.PushAsync(new Page2());
0 голосов
/ 13 марта 2019

Вы можете использовать следующий код для навигации в MVVM:

public INavigation Navigation { get; set;}


    public YourViewModel(INavigation navigation)
    {
        this.Navigation = navigation;
        this.YourButtonClick= new Command(async () => await GotoPage2());
    }


    public async Task GotoPage2()
    {
         /////
         await Navigation.PushAsync(new Page2());
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...