Ho problemi a passare i parametri tra i miei ViewModels utilizzando la classe Messenger in MVVMLight Framework.Passare il parametro tra ViewModels utilizzando MVVMLight
Questo è il codice che sto utilizzando:
ViewModelLocator
public ViewModelLocator()
{
ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);
SimpleIoc.Default.Register<INavigationService, NavigationService>();
SimpleIoc.Default.Register(() => new MainViewModel(NavigationService));
SimpleIoc.Default.Register(() => new SecondViewModel(NavigationService));
}
public MainViewModel MainViewModel
{
get { return SimpleIoc.Default.GetInstance<MainViewModel>(); }
}
public SecondViewModel SecondViewModel
{
get { return SimpleIoc.Default.GetInstance<SecondViewModel>(); }
}
public INavigationService NavigationService
{
get { return SimpleIoc.Default.GetInstance<INavigationService>(); }
}
MainViewModel
private void ShowPersonDetailsCommand(object obj)
{
Messenger.Default.Send((Person)obj);
_navigationService.NavigateTo(new Uri("/SecondPage.xaml", UriKind.Relative))
}
SecondViewModel
Nel mio MainViewModel
(ShowPersonDetailsCommand), sto navigando su una seconda pagina e invio una persona come parametro nella classe Messenger. A questo punto, la persona è ben costruita e inviata come messaggio.
Ma nel costruttore SecondViewModel
, la persona è nulla :(
C'è qualcosa che mi manca
I pensa che ho fatto qualcosa di sbagliato ...
Per vostra informazione?:
Windows Phone 8.1 (Silverlight)
MVVMLight 5.0.2
Visual Studio 2013 Aggiornamento 4
Questo ha funzionato per me, grazie :) –