我的问题很简单,但所有选项都让我感到困惑......
在我的 MEF/Prism 应用程序中,我想将特定行为附加到一个特定区域。文献说,你可以这样做:
IRegion region = regionManager.Region["Region1"];
region.Behaviors.Add("MyBehavior", new MyRegion());
但是我应该把这个放在哪里?有没有地方,这应该在引导方法中完成?目前,我在 shell 的 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()
) 相同的位置完成。
那么问题来了:将行为添加到单个区域的最佳位置在哪里?