シェル アプリケーションと、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 に動的に追加する方法です。これは可能ですか?