As I can see, you are sending messsage using the Messenger class, so you are familiar with messaging in MVVM mode. You must define your own message type, which should accept your parameters from page 1:
public class Page2ViewModelCreateMessage : MessageBase { public ICollection<Note> AvailableNotes{get;set;} public SoundMappers SoundType{get;set;} public Page2ViewModelCreateMessage () { } public Page2ViewModelCreateMessage(ICollection<Note> availableNotes, SoundMappers soundType) { this.AvailableNotes = availableNotes; this.SoundType = soundType; } }
You need to send an instance of Page2ViewModelCreateMessage with parameters and send it when navigating:
var message = new Page2ViewModelCreateMessage(myAvailableNotes, mySoundType) Messenger.Default.Send(message);
On page 2, you need to register to receive a message like Page2ViewModelCreateMessage:
Messenger.Default.Register<Page2ViewModelCreateMessage>(this, OnPage2ViewModelCreateMessage); .. public void OnPage2ViewModelCreateMessage(Page2ViewModelCreateMessage message) { var page2ViewModel = new Page2ViewModel(messsage.AvailableNotes, message.SoundType); }
As you can see, I can replace your DoStuffViewModel with Page2ViewModel to be more clear.
Hope this helps you.
NOTE. I do not guarantee that the code will work as written in notepad.
source share