MVVM-Licht: Übergeben Sie das Objekt von Ansicht zu Ansichtsmodell

Ich habe vor kurzem angefangen, mit WPF mit MVVM-Licht zu arbeiten, und ich habe das folgende (einfaches Szenario).

MainWindow enthält eine Listbox mit Elementen.

Wenn einer ausgewählt ist und die Schaltfläche angeklickt wird, führe ich einen Befehl aus:

ReservoirViewerCommand.Execute(null);

In der Klasse viewmodel instanziiere ich den Befehl und sende eine Nachricht mit dem ausgewählten Objekt:

ReservoirViewerCommand = new RelayCommand(OpenReservoir);
private void OpenReservoir()
{
    Messenger.Default.Send(new LaunchShowReservoirMessage(){Reservoir=SelectedReservoir});          
}

woher:

class LaunchShowReservoirMessage:MessageBase
{
    public Reservoir Reservoir { get; set; }
}

Die Hauptansicht registriert die Nachricht und öffnet ein neues untergeordnetes Fenster:

private void RegisterMessages() 
{
    Messenger.Default.Register<LaunchShowReservoirMessage>(this,OnLaunchShowReservoir);
}

public void OnLaunchShowReservoir(LaunchShowReservoirMessage msg) {
    var showReservoir = new ReservoirViewerView();
    showReservoir.Show(); 
}

Was ich brauche, ist, dass das neue ViewModel (ReservoirViewerViewModel) das übergebene Objekt irgendwie über die Nachricht erfassen kann, damit ich dann die Details dieses Objekts im untergeordneten Fenster anzeigen kann.

Ich habe ein schrittweises Debugging durchgeführt und der ViewModel-Konstruktor scheint nie erreicht zu werden.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage