我正在使用 Prism(复合应用程序框架)来构建应用程序。我创建了外壳,它具有三个区域(主、菜单、总机)。我想用一个开关板用户控件在 shell 中加载我的开关板区域,但在这种情况下,我不想通过模块加载它。
那么,如何将我的视图(交换机用户控件)注册到引导程序内的 shell 交换机区域。也许只能创建一个专门为总机用户控制的模块,但这似乎是浪费时间。我一直在尝试这样做,但最终似乎无法通过派生的 UnityBootStrapper 类访问 RegionManager。
谢谢你。
我正在使用 Prism(复合应用程序框架)来构建应用程序。我创建了外壳,它具有三个区域(主、菜单、总机)。我想用一个开关板用户控件在 shell 中加载我的开关板区域,但在这种情况下,我不想通过模块加载它。
那么,如何将我的视图(交换机用户控件)注册到引导程序内的 shell 交换机区域。也许只能创建一个专门为总机用户控制的模块,但这似乎是浪费时间。我一直在尝试这样做,但最终似乎无法通过派生的 UnityBootStrapper 类访问 RegionManager。
谢谢你。
在不了解您的整个场景的情况下,可能没有必要将 Switchboard UserControl 添加到区域。这是因为,如果您的场景需要您将其添加到 Shell 项目中,您可能不需要区域提供的可扩展性和 UI 组合功能。
假设使用控件的 SwitchBoard 位于 ContentControl 中,您可以简单地将其从 Shell 设计器中放置在那里,而无需定义区域。另一方面,如果 SwitchBoard 用户控件放置在 Selector 或 ItemsControl 内,您可以定义该区域,并将其添加为其子项之一。您仍然可以向这些区域添加新视图,并且 SwitchBoard 控件将始终位于 Shell 中。
也就是说,假设 RegionManager 已在容器中注册,您可以执行以下操作来访问引导程序中的 RM:(伪代码):
public class MyBootstrapper : UnityBootstrapper
{
MyMethod()
{
IRegionManager manager = this.Container.Resolve<IRegionManager>();
}
}
我希望这有帮助。
谢谢,达米安