Dado que tengo una aplicación de shell y un par de proyectos de módulo por separado utilizando Microsoft CompoisteWPF (Prisma v2) ...Composite WPF (Prism) plantillas de recursos del módulo de datos
Al recibir un comando, un módulo crea una nueva ViewModel y lo agrega a una región a través del administrador de región.
var viewModel = _container.Resolve<IMyViewModel>();
_regionManager.Regions[RegionNames.ShellMainRegion].Add(viewModel);
pensé que entonces podría crear un diccionario de recursos dentro del módulo y configurar una plantilla de datos para mostrar una vista para el tipo de vista del modelo que se cargó (ver más abajo XAML). Pero cuando se agrega el modelo de vista a la vista, todo lo que obtengo es el espacio de nombres de los modelos de vista impreso.
<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:
puedo conseguir que funcione mediante la adición a la 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>
Lo cual está bien, pero significa que a medida que los nuevos módulos son creados, la App. El archivo xaml debe agregarse a. Lo que estoy buscando es una forma de que los módulos se carguen para agregar dinámicamente a la Aplicación.Recursos. es posible?
La primera parte de su respuesta requiere que su módulo alcance la Aplicación. Recomendaría en contra de esto ya que no se puede evaluar. El segundo enfoque es más apropiado. –