Dato che ho un applicazione guscio e un paio di progetti di moduli separati che utilizzano Microsoft CompoisteWPF (Prisma v2) ...Composite WPF (Prism) risorse modulo modelli di dati
Alla ricezione di un comando, un modulo crea un nuovo ViewModel e lo aggiunge a una regione tramite il manager della regione.
var viewModel = _container.Resolve<IMyViewModel>();
_regionManager.Regions[RegionNames.ShellMainRegion].Add(viewModel);
ho pensato che avrei potuto creare un dizionario risorse all'interno del modulo e impostare un modello di dati per visualizzare una visione per il tipo di vista del modello che è stato caricato (vedi sotto XAML). Ma quando il modello di vista viene aggiunto alla vista, tutto quello che ottengo è il namespace dei modelli di vista stampato.
<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>
Edit:
posso farlo funzionare con l'aggiunta al App.xaml
<Application.Resources>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/Module1;component/Module1Resources.xaml"/>
<ResourceDictionary Source="pack://application:,,,/Module2;component/Module2Resources.xaml"/>
</ResourceDictionary.MergedDictionaries>
</Application.Resources>
che va bene, ma significa che sono creati come nuovi moduli, l'App. il file xaml deve essere aggiunto a. Quello che sto cercando è un modo per i moduli, mentre vengono caricati per aggiungere dinamicamente a Application.Resources. È possibile?
La prima parte della risposta richiede che il modulo raggiunga l'applicazione. Consiglierei contro questo perché non è testabile. Il secondo approccio è più appropriato. –