5 Stimmen

PRISM - Wiederverwendung von Ansichten mit untergeordneten Regionen - ist das möglich?

Ich bin ein bisschen ein PRISM-Neuling, aber ich habe die Hilfe-Dokumentation gelesen und kann nicht scheinen, um herauszufinden, wie die folgenden (dies ist eine WPF-Anwendung) zu erreichen

J'ai un Shell (Fenster), das 2 Regionen mit den Namen 'region1' und 'region2' hat. in der Initialize Methode meines einzigen Moduls registriere ich dieselbe Ansicht mit jeder Region:

regionViewRegistry.RegisterViewWithRegion("Region1", typeof(View1));
regionViewRegistry.RegisterViewWithRegion("Region2", typeof(View1));

und wenn ich es ausführe, ist zu diesem Zeitpunkt alles in Ordnung, denn es werden 2 einzelne Instanzen von View1 und platziert einen in jeder Region.

Jetzt in View1 Ich habe eine eigene Region für die Injektion von kleinen Kind Ansichten erklärt

<ItemsControl Name="MainRegion" cal:RegionManager.RegionName="MainRegion" />

Wenn ich nun meine sehr einfache PRISM-Anwendung ausführe, erhalte ich die folgende Ausnahmemeldung:

"Die Region mit dem angegebenen Namen ist bereits registriert: MainRegion"

was darauf hindeutet, dass ich nicht mehrere Instanzen der gleichen Ansicht haben kann, wenn diese Ansicht ihre eigenen Regionen deklariert.

Ist dies richtig?

scheint eine große Einschränkung zu sein.

Ich möchte, dass meine Anwendung hochgradig modular ist und dass die Ansichten sich aus anderen Ansichten zusammensetzen (über Regionen) usw.

Oder habe ich die Dokumentation falsch gelesen?

6voto

Anderson Imes Punkte 25252

Mit Hilfe von RegionScope können Sie Regionen auf Shell-Ebene von Regionen trennen, die von Modulansichten erstellt wurden. Jede Region, die Sie ohne einen Bereich erstellen, ist "global" und zwei Regionen mit demselben Namen im selben Bereich werden nicht unterstützt.

Weitere Informationen zu Region Scopes finden Sie in diesem MSDN-Artikel: http://msdn.microsoft.com/en-us/magazine/cc785479.aspx#id0090126

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X