В Xamarin.Формы переходят на другую страницу с помощью ViewModel

у меня есть несколько ContentPages, и я хочу перейти от одного к другому по щелчку элемента на странице. У меня есть класс ViewModel:

 class JumpVM : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;
        private INavigation _navigation;

        public ICommand NewPage
        {
            get
            {
                return new Command(async () =>
                {
                    await _navigation.PushAsync(new MySettingsPage());
                });
            }
        }

        public JumpVM() { }

        public JumpVM(INavigation navitation)
        {
            _navigation = navitation;
        }
    }

и это одна из моих страниц( для простора я ставлю только соответствующий код):

BindingContext = new JumpVM(this.Navigation);

....

 Image fbInvite = new Image
            {
                Source = ImageSource.FromResource(Constants.ASSETLOCATION + ".facebookInviteIcon.png"),
                HorizontalOptions = LayoutOptions.Center
            };
            fbInvite.GestureRecognizers.Add(new TapGestureRecognizer(sender =>
                {
                    //navigation in the method below
                    FaceboonInviteFriends();
                    fbInvite.Opacity = 0.8;
                    fbInvite.FadeTo(1);
                }));

Я хочу, когда я нажимаю изображение, выполнить команду в классе JumpVM и перейти на страницу там. Как я могу это сделать?

2 ответов


попробуйте добавить следующую строку после FadeTo линия: ((JumpVM)BindingContext).NewPage.Execute(null).


Это ответ для перехода с одной страницы на другую в концепции ViewModel.

public ICommand NavigationList { get; set; }

NavigationList = new Command(GetListview);  

public void  GetListview()
{
   Xamarin.Forms.Application.Current.MainPage.Navigation.PushAsync(new ListViewPerson());
}