Ich bin neu in Prism und ich versuche, eine bewährte Methode zum Deaktivieren einer Ansicht in einer Prism 2-Anwendung zu bestimmen - wenn ein Benutzer auf eine Schaltfläche auf der Ansicht klickt um die Ansicht zu deaktivieren. Die Ansicht führt einen Befehl aus, wenn auf die Schaltfläche geklickt wird.Prism 2 SL: Entfernen der Ansicht aus der Region, wenn die Schaltfläche geklickt wurde
Das Ansichtsmodell empfängt den Befehl, aber das Ansichtsmodell hat keinen Verweis auf den Regionsmanager.
Sollte das Ansichtsmodell über den Regionsmanager wissen? Und selbst wenn das Ansichtsmodell einen Verweis darauf hatte, muss die Ansichtsinstanz zur deaktivierten Methode für die enthaltende Region übergeben werden.
Ich verwende das MVVM-Muster für die App.
Es ist ein Willkommensbildschirm, dass, wenn der Benutzer auf die Schaltfläche klickt - ich will, dass es verschwinden, wodurch die Hauptansicht der App angezeigt wird. Die Region, die ich verwende, ist nur eine Inhaltskontrolle. Ist es sinnvoll, das IModul zu verwenden, zu dem die Ansicht gehört, als den Controller - weil das die Sichten registriert? – MIantosca
In diesem Fall würde ich ja sagen. Ihr Ansichtsmodell könnte den EventAggregator (existiert in Prism SL?) Verwenden, um jedem Objekt zu signalisieren, dass es verantwortlich ist, die Ansicht zu verwerfen.Auf diese Weise bleibt Ihr View/ViewModel von der eigentlichen Aufgabe, Regionen zu verwalten, isoliert. –
cool - Ich hatte darüber nachgedacht, ein Ereignis zu verwenden, um das Viewmodel vom Regionmanager zu entkoppeln - vielleicht ein Allzweck-Event, das von jeder View gefeuert werden kann, wenn es deaktiviert werden muss. Wie kann das Ansichtsmodell einen Verweis auf die Ansicht erhalten, damit sie weitergegeben werden kann? – MIantosca