私の問題は非常に単純ですが、すべてのオプションが私を混乱させます...
MEF / Prismアプリケーションでは、特定の動作を1つの特定の領域にアタッチしたいと思います。疑惑は、あなたがそれをそのように行うことができると言っています:
IRegion region = regionManager.Region["Region1"];
region.Behaviors.Add("MyBehavior", new MyRegion());
しかし、これはどこに置くべきですか?どこかありますか、これはブートストラッパー方式で行われることになっていますか?現在、シェルのLoaded-eventに次のような動作を追加しています。
/// <summary>
/// Interaction logic for Shell.xaml
/// </summary>
[Export(typeof(Shell))]
public partial class Shell
{
[ImportingConstructor]
public Shell(IRegionManager regionManager, ElementViewInjectionBehavior elementViewInjectionBehavior)
{
InitializeComponent();
Loaded += (sender, args) =>
{
IRegion region = regionManager.Regions[RegionNames.ElementViewRegion];
region.Behaviors.Add("ElementViewInjection", elementViewInjectionBehavior);
};
}
}
これは良い解決策ですか。他のリージョンの動作登録と同じ場所で実行されるように、ブートストラッパーで実行したいと思います(ConfigureDefaultRegionBehaviors()
)。
したがって、質問:1つの単一の領域に動作を追加するのに最適な場所はどこですか?