是否可以在模块内注册区域适配器?

我的Shell.xaml中的ContentControl设置为“ MainRegion”区域,当前该区域填充有包含AvalonDock控件的模块。目前,我的Shell应用程序中有AvalonDock区域适配器,但想将其放在模块中并进行注册。我想保持该程序的灵活性,以便如果我们决定使用AvalonDock以外的其他程序,则可以轻松使用其他模块,而无需修改我的Shell程序集(删除avalondock区域适配器)。

我想像这样的事情是可能的。有人做过吗?

现在在引导程序中是: 通用标签

这是我要在模块中而不是Shell引导程序中执行的操作。

有帮助吗?

解决方案

从codeplex http://compositewpf.codeplex.com/discussions/250892

您描述的场景是 可能的。虽然自定义区域 适配器旨在进行注册 在RegionAdapterMappings中 引导者的 ConfigureRegionAdapterMappings方法, 可以注册自定义 模块内部的区域适配器。

例如,您可以获得一个 引用RegionAdapterMappings 在模块类中使用 构造函数注入,并调用 那里有RegisterMapping方法。这是 可能的,因为有一个名为 MefRegionAdapterMappings,其中 将RegionAdapterMappings导出为 共享导出。请注意,您应该 意识到可能存在的时间问题 因此出现。你应该 小心注册自定义映射 尝试创建区域之前 使用该适配器。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top