Modelos compostos de dados de recursos do módulo WPF (Prism)
Dado que eu tenho um aplicativo shell e um par de projetos de módulos separados usando o Microsoft CompoisteWPF (Prism v2) ...
Ao receber um comando, um módulo cria um novo ViewModel e o adiciona a uma região através do gerenciador de região.
var viewModel = _container.Resolve<IMyViewModel>();
_regionManager.Regions[RegionNames.ShellMainRegion].Add(viewModel);
Eu pensei que eu poderia então criar um dicionário de recursos dentro do módulo e configurar um modelo de dados para exibir uma visão para o tipo de modelo de visão que foi carregado (veja abaixo xaml). Mas quando o modelo de exibição é adicionado à exibição, tudo que eu obtenho é o namespace dos modelos de exibição impresso.
<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>
Editar:
Eu posso fazê-lo funcionar adicionando ao 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>
O que é bom, mas significa que à medida que novos módulos são criados, o arquivo App.xaml precisa ser adicionado. O que eu estou procurando é uma maneira de módulos, como eles carregam para adicionar dinamicamente ao Application.Resources. Isso é possível?