Шаблоны данных ресурса составного модуля WPF (Prism)
Учитывая, что у меня есть приложение оболочки и несколько отдельных проектов модулей, использующих Microsoft CompoisteWPF (Prism v2) ...
Получив команду, модуль создает новую модель ViewModel и добавляет ее в регион с помощью диспетчера регионов.
var viewModel = _container.Resolve<IMyViewModel>();
_regionManager.Regions[RegionNames.ShellMainRegion].Add(viewModel);
Я подумал, что смогу затем создать словарь ресурсов в модуле и настроить шаблон данных для отображения представления для загруженного типа модели представления (см. Ниже xaml). Но когда модель представления добавляется в представление, все, что я получаю, это распечатанное пространство имен моделей представления.
<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>
Редактировать:
Я могу заставить его работать, добавив в 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>
Это нормально, но это означает, что при создании новых модулей необходимо добавить файл App.xaml. То, что я ищу, - это способ для модулей, так как они загружаются для динамического добавления в Application.Resources. Это возможно?