Dragos Dragos - 1 year ago 132
C# Question

Xamarin.Forms Navigate to another page using ViewModel

I have several ContentPages and I want to navigate from one to another at the click of an element in the page. I have my ViewModel class:

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

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

public JumpVM() { }

public JumpVM(INavigation navitation)
_navigation = navitation;

And this is one of my pages( for the sake of space, i put only the relevant code):

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
fbInvite.Opacity = 0.8;

I want when I click the image, to execute the Command in the JumpVM class and navigate to the page there. How can I do that?

Answer Source

Try adding the following line after the FadeTo line: ((JumpVM)BindingContext).NewPage.Execute(null).

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download