...コンポジットWPF(プリズム)モジュールのリソースデータテンプレート
コマンドを受信すると、モジュールは、新たに作成し、 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>
に追加することによって、仕事を得ることができます。 xamlファイルを追加する必要があります。私が探しているのは、モジュールのための方法です.Apple.Resourcesに動的に追加するために読み込まれます。これは可能ですか?どのような方法でシェルに手を差し伸べるからあなたのモジュールとあなたのモジュールについて何を知っていることから、あなたのシェルアプリを回避するために
答えの最初の部分では、モジュールがアプリケーションに到達する必要があります。私はそれがuntestableであるのでこれに対して推薦する。 2番目のアプローチがより適切です。 –