Ho diverse pagine di contenuto e voglio spostarmi da uno all'altro al clic di un elemento nella pagina. Io ho la mia classe ViewModel:Xamarin.Forms Passare a un'altra pagina utilizzando 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;
}
}
e questa è una delle mie pagine (per il gusto di spazio, ho messo solo il codice di riferimento):
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);
}));
Voglio quando faccio clic sull'immagine, per eseguire il comando nella classe JumpVM e navigare verso la pagina lì. Come lo posso fare?
In realtà, risponde. Aggiungerò solo un piccolo suggerimento alla mia risposta. –
Grazie :) Questo ha aiutato. Segnalo come risposta, ma se puoi aiutarmi con un'altra cosa legata a questo, sarebbe bello. Come puoi vedere, ho programmato con difficoltà dove sarebbe saltato "attendi _navigation.PushAsync (new MySettingsPage());" . Ma per maggiore flessibilità, posso inserire una determinata pagina in base a quale pulsante clicco? – Dragos
Certo, puoi creare qualsiasi pagina che desideri e usarla come parametro. –