C# Unity Framework / Objektinstanz weiteres Objekt anfügen / WPF

PEASANT KING

Commander
Registriert
Okt. 2008
Beiträge
2.397
Guten Morgen,

ich weiß der Titel ist etwas unglücklich gewählt, ich weiß allerdings nicht wie ich ihn genau beschreiben soll.

Ich bin im Moment dabei eine Anwendung zu schreiben in C#. Ich nutzte das Prism Framework im Verbund mit dem Unity Framework.
Nun habe ich meine Anwendung modular aufgebaut, da Prism MVVM und modulares Programmieren vereinfacht und ermöglicht. Jetzt habe ich ein Modul, was unter anderem eine MenuBar(WPF) mit MenuItems füllt, das klappt auch wunderbar.
Ich würde doch gerne auch dynamisch modular SubMenuItems den MenuItems hinzufügen, was nicht funktioniert.

Die MenuItems sind in den jeweiligen Modulen als XAML vorhanden. Mit dem folgenden Codeausschnitt werden die Views in Unity registriert:

Code:
_container.RegisterType<DataMenuItem>("Data");
_container.RegisterType<DataMenuItem>("Exit");

Im MainWindow wird mittels Prism RegionManager das Menu inklusive der First Level MenuItems geladen das geschieht mit folgendem Codeausschnitt und funktioniert wunderbar.

Code:
_regionManager.Regions[RegionNames.MenuBar].Add(_container.Resolve<DataMenuItem>("Data"));

Jetzt dachte ich mache ich es mir einfach und hole mir die Instanz aus dem Unity Container von DataMenuItem und füge die Instanz von ExitMenuItem dem DataMenuItem Objekt hinzu leider funktioniert das nicht mit folgendem Code.

Code:
_container.Resolve<DataMenuItem>("Data").Items.Add(_Container.Resolve<ExitMenuItem>("Exit"));

_regionManager ist ein Interface vom Typ Prism.Regions.IRegionManager und kommt aus Prism und ist dazu da definierte Regions in einer View ansprechen zu können.
_container ist das Interface vom Typ Microsoft.Practices.Unity.IUnityContainer.

Ich denke es wird nicht die richtige Instanz des Objekts DataMenuItem im Unity Container gefunden und somit wird auch kein SubMenu angefügt. Komischerweise wenn ich es direkt dem Menu anfüge wird ExitMenuItem auch schon in der obersten Ebene des Menus angezeigt.

​Hoffentlich ist das Ganze etwas verständlich für die jenigen die mit Unity arbeiten und Erfahrung haben.
 

Ähnliche Themen

Zurück
Oben