Composite WPF (Prism) szablony danych zasobów
Biorąc pod uwagę, że mam aplikację powłoki i kilka oddzielnych projektów modułów przy użyciu Microsoft CompoisteWPF (Prism v2) ...
Po otrzymaniu polecenia moduł tworzy nowy ViewModel i dodaje go do regionu za pośrednictwem menedżera regionu.
var viewModel = _container.Resolve<IMyViewModel>();
_regionManager.Regions[RegionNames.ShellMainRegion].Add(viewModel);
Pomyślałem, że mogę następnie utworzyć słownik zasobów w module i skonfigurować szablon danych, aby wyświetlić widok dla załadowanego modelu widoku (patrz poniżej xaml). Ale gdy model widoku zostanie dodany do widoku, wszystko, co otrzymuję, to wydrukowana przestrzeń nazw modeli widoków.
<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>
Edytować:
Mogę go uruchomić, dodając do 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>
Co jest w porządku, ale oznacza to, że wraz z tworzeniem nowych modułów należy dodać plik App.xaml. To, czego szukam, to sposób, w jaki moduły ładują się, aby dynamicznie dodawać je do Application.Resources. czy to możliwe?