Навигация по страницам содержимого MVVM xamarin - PullRequest
0 голосов
/ 12 июня 2018

Может ли кто-нибудь научить меня, как перемещаться между страницами контента?Я читал много уроков, но не смог этого достичь.У меня есть небольшой код, которого я хочу добиться, чтобы при нажатии кнопок я переключался между страницами.Я использую модель MVVM, есть моя MainViewModel

public class MainViewModel
{
    public Page1 PageNumberOne { get; set; }
    public Page2 PageNumberTwo { get; set; }

    public MainViewModel()
    {
        this.PageNumberOne = new Page1();
    }

}

, есть моя модель представления Page1

public class Page1
{
    #region constructor
    public Page1()
    {
        GoPage2Command = new Command(async () => await GoPage2());
    }

    private async Task GoPage2()
    {
        await Application.Current.MainPage.DisplayAlert("", "Goin to page 2", "ok");
        //code to go PageNumberTwo here
    }
    #endregion

    #region Commands
    public Command GoPage2Command { get; set; }
    #endregion
}

GoPage2Command привязывается к кнопке.есть мой полный проект до загрузки MF VS проект

Ответы [ 2 ]

0 голосов
/ 13 июня 2018

Я обнаружил проблему, я использовал Xamarin Live для выполнения тестов, подключение по кабелю не выдает никакой ошибки.Я не рекомендую использовать Xamarin Live не только дает эту проблему, но и многое другое

0 голосов
/ 12 июня 2018

Просто позвоните

Navigation.PushAsync(new ContentPage());

Метод INavigation.PushAsync

Асинхронно добавляет страницу в начало стека навигации.

Пример со страницы

var newPage = new ContentPage ();
await Navigation.PushAsync (newPage);
Debug.WriteLine ("the new page is now showing");
var poppedPage = await Navigation.PopAsync ();
Debug.WriteLine ("the new page is dismissed");
Debug.WriteLine (Object.ReferenceEquals (newPage, poppedPage)); //prints "true"

Ваш пример

private async Task GoPage2()
{
    await Application.Current.MainPage.DisplayAlert("", "Goin to page 2", "ok");
    //code to go PageNumberTwo here
    Navigation.PushAsync(new PageNumberTwo());        
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...