Frage

Ich beginne ein neues Projekt in Wpf, und jetzt bin auf der Suche in Prism verwenden. Denn jetzt versuche ich einfach die Navigation der Anwendung mit Prism einzurichten. Leider ist mein Mangel an Erfahrung mit dem Framework macht es ein bisschen schwierig, um loszulegen ..

Um genauer zu sein über meine erste Herausforderung habe ich eine Anwendung mit einer „Navigation / Menü“ Region und einer „Haupt“ Region. Der Navigationsbereich wird das gleiche für alle verschiedenen Haupt Region Ansichten, und ich daher das Menü in der shell.xaml definieren. Wenn jeder Menüpunkt klicken würde Ich mag einen Blick in die Region hinzuzufügen Prism verwenden. Zuerst; ist dies etwas, das man für gewöhnlich Prism verwenden? Wenn ja; was ist der typische Ansatz? Und ich meine auf einer strukturellen Ebene ..

Mein Eindruck ist, dass Prism meine Anwendung am Ende viel besser skalierbar machen, und ich sehe, dass ich einige andere Vorteile daraus ziehen - wie der IoC-Container. So würde Ich mag es zu benutzen - wenn ich nur durch die ersten Schritte erhalten könnte ..

War es hilfreich?

Lösung

Ich habe eine Probe bekommt, die ein wenig mehr von der CAG zu einem Menü beitragen Module fühlen verwendet und wie man hinzufügen Blick auf eine Region. Es sollte die Dinge ein wenig klarer machen.

http://dl.getdropbox.com/u/376992/CAGMenus.zip

Hope, das hilft, Anderson

Andere Tipps

Bumbuska,

Prism wird eine großartige Möglichkeit für Sie, um diese Funktionalität zu erreichen, und es ist ziemlich einfach zu tun, wenn Sie die Prinzipien zu verstehen.

So wie ich es tun werde, ist an Ereignis-Listener in dem Start-up Event Ihrer Main-Region hinzufügen. Wenn Sie Ihren Eintrag im Menü auswählen, feuern Sie die Veranstaltung. Wenn das passiert Ihre Main-Region wird das Ereignis behandeln und Sie löschen die aktuelle Ansicht aus dem Main-Gebiet. Erstellen Sie dann die neue Ansicht, die Sie verwenden möchten, und es hinzuzufügen.

Ihr Hauptbereich soll wie folgt aussehen:

public void Initialize()
{
    Events.PageEvents.ClickedEvent1 ce1 = this.eventAggregator.GetEvent<Events.PageEvents.ClickedEvent1>();
    ce1.Subscribe(LoadView, ThreadOption.UIThread, true);
}

private void LoadView(Events.HomePageEvents.Clicked clicked1)
{
    IRegion mainRegion = RegionManager.Regions["MainRegion"];
    foreach (object view in new List<object>mainRegion.Views))
    {
        RegionManager.Regions["MainRegion"].Remove(view);
    }

    IModule firstModule = Container.Resolve<Modules.FirstModule>();
    firstModuleModules.Initialize();

}

Ich hoffe, dass Punkte, die Sie in der richtigen Richtung. Bitte lassen Sie mich wissen, wenn Sie weitere Informationen benötigen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top