2016-07-08 8 views
4

Navigation Ich habe Regionen VerschachtelteWie NavigatingFrom in verschachteltem Kind Region auszulösen, wenn Elternregion ist

ein. ParentView/ParentRegion/ParentViewModel
b. Child1View/ChildRegion/Child1ViewModel
b. Child2View/ChildRegion/Child2ViewModel
b. Child3View/ChildRegion/Child3ViewModel

FALL 1: Ich brauche ein Ereignis oder einen Auslöser haben, wenn Eltern die Navigation aus, die in ParentViewModel passiert. Aber Parent kennt keine Child-Typen. Wenn ein Child ungültig ist, möchte ich den Benutzer zum Speichern oder Abbrechen auffordern. Wie erreiche ich das?

CASE 2: Mein ChildRegion ist i auch dann zwischen Geschwistern wie die Navigation müssen gefeuert, ein Ereignis haben, wenn zwischen den Kindern navigieren und sollte die Navigation stoppen können, wenn die aktuelle Ansicht Meine ungültig oder unvollständig ist

Versuche: Ich habe INAigrationAware auf allen Eltern und Kind, aber wenn Eltern navigiert Kind nicht ausgelöst und ich habe keinen Verweis auf Kind in Elternteil navigieren von.

Wie behebe ich dieses Szenario?

+0

Ich habe etwas ähnliches, aber ich durfte zu verschiedenen Eltern Ansichten navigieren, während ein Kind offen war, und sogar zu verschiedenen Modulen. Dann, wenn der Benutzer versucht, die App zu schließen. Stattdessen würde ich zurück zu den geöffneten Ansichten navigieren. Aber ich habe keine Möglichkeit gefunden, dem Kind zu sagen, dass ein Elternteil navigiert. Würde so etwas Sinn machen? – adminSoftDK

Antwort

0

Sie möchten hier eine Version des observer Musters verwenden. Jede untergeordnete Region sollte ein Ereignis abonnieren, das von der übergeordneten Region in der INavigationAware.NavigateFrom-Methode ausgelöst wird. Ein anderes Ereignis (oder das gleiche Ereignis, wenn keine separate Funktionalität erforderlich ist) könnte von jedem untergeordneten Element in seiner Implementierung ausgelöst werden. Alternativ können Sie statt eines Ereignisses auch ein CompositeCommand verwenden

.

+0

Ich dachte an Beobachtermuster, konnte aber nicht herausfinden, wo ich anfangen soll – WPFKK