В 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());
}