WPF、Prism、MVVMを使用して小さなアプリを作成しています。コマンドが実行されるたびに再利用したいコントロール(ローダー)があり、そのユーザーコントロールを特定の領域の上に透明性を持って配置したいと思います。つまり、コマンドを呼び出す現在のモジュールが存在する領域。
ViewModelから特定の領域の上にこのユーザーコントロールを追加するにはどうすればよいですか(これは適切な場所ですか?)?
Prismを使用する場合、これを行うための最良の方法はリージョンを使用することです。
ビューにリージョンを作成し、一意の名前を付けます。
<ContentControl rgn:RegionManager.RegionName="TopRegion" />
次に、ViewModelでRegionManagerを使用してユーザーコントロールを追加します。
IRegion myRegion = regionManager.Regions["TopRegion"];
myRegion.Add(userControl1);
また、これはMVVMにあるため、 MEFやUnityなどのある種のIoCを使用してユーザーコントロールを追加する必要があることも指摘しておく必要があります。