Ressourcen-Datenvorlagen für zusammengesetzte WPF (Prism) -Module
Vorausgesetzt, ich habe eine Shell-Anwendung und ein paar separate Modulprojekte mit Microsoft CompoisteWPF (Prism v2) ...
Bei Erhalt eines Befehls erstellt ein Modul ein neues ViewModel und fügt es über den Regionsmanager einer Region hinzu.
var viewModel = _container.Resolve<IMyViewModel>();
_regionManager.Regions[RegionNames.ShellMainRegion].Add(viewModel);
Ich dachte, ich könnte dann ein Ressourcenwörterbuch innerhalb des Moduls erstellen und eine Datenvorlage einrichten, um eine Ansicht für den geladenen Ansichtsmodelltyp anzuzeigen (siehe unten xaml). Wenn das Ansichtsmodell zur Ansicht hinzugefügt wird, wird nur der Namensraum der Ansichtsmodelle ausgedruckt.
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="clr-namespace:Modules.Module1.ViewModels"
xmlns:vw="clr-namespace:Modules.Module1.Views"
>
<DataTemplate DataType="{x:Type vm:MyViewModel}">
<vw:MyView />
</DataTemplate>
</ResourceDictionary>
Bearbeiten:
Ich kann es zum Laufen bringen, indem ich es zur App.xaml hinzufüge
<Application.Resources>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/Module1;component/Module1Resources.xaml"/>
<ResourceDictionary Source="pack://application:,,,/Module2;component/Module2Resources.xaml"/>
</ResourceDictionary.MergedDictionaries>
</Application.Resources>
Das ist in Ordnung, bedeutet aber, dass beim Erstellen neuer Module die Datei App.xaml hinzugefügt werden muss. Was ich suche, ist eine Möglichkeit für Module, wie sie geladen werden, um dynamisch zur Application.Resources hinzuzufügen. Ist das möglich?