C# 在.NET 3.5 WPF应用程序的某些部分中使用Prism 2x
我有现有的WPF应用程序。在这个应用程序中,我有主选项卡控件,在这个选项卡控件下我有多个选项卡 我只想在一个选项卡中应用Prism体系结构。我想将Shell创建为一个选项卡 可以申请吗?如果是的话,我怎样才能为那个特定的标签钩住引导程序呢。在这种情况下,我想按需加载此选项卡。当用户单击此选项卡时。我想通过BootStrapper加载所有UI元素,然后运行ShellC# 在.NET 3.5 WPF应用程序的某些部分中使用Prism 2x,c#,wpf,prism,C#,Wpf,Prism,我有现有的WPF应用程序。在这个应用程序中,我有主选项卡控件,在这个选项卡控件下我有多个选项卡 我只想在一个选项卡中应用Prism体系结构。我想将Shell创建为一个选项卡 可以申请吗?如果是的话,我怎样才能为那个特定的标签钩住引导程序呢。在这种情况下,我想按需加载此选项卡。当用户单击此选项卡时。我想通过BootStrapper加载所有UI元素,然后运行Shell 我可以使用UserControl\u加载的事件触发我的引导程序吗?如果是,如何实例化引导程序 我希望这个问题是可以理解的。我不确定这
我可以使用UserControl\u加载的事件触发我的引导程序吗?如果是,如何实例化引导程序
我希望这个问题是可以理解的。我不确定这是否会像您期望的那样工作,因为引导程序用于启动shell。您可以通过让您的应用程序成为shell,并通过将shell设置为主应用程序启动引导程序的过程来实现这一点。然后,主应用程序将是您的WPF应用程序,但在应用程序内部的某个地方,您定义了一个要使用的区域 然而,我不认为仅仅向选项卡项添加一个区域,然后启动应用程序就行了。为了让所有的国际奥委会魔术发生,引导者需要成为起始目标
简短回答:是的,有关于如何编写shell的警告。它可以工作,但是你必须手工完成一些工作(特别是如果你想让模块工作的话)。 按照以下步骤让您的设备正常工作: 首先用引导程序、Shell等创建一个普通的Prism项目。。 然后,在需要显示区域时,以这种方式获取UserControl:
ServiceLocator.Current.GetInstance<TestUc>();
这将设置要用作Xaml中RegionManager.RegionName=“…”的附加依赖项属性。
现在,您可以立即通过RegionManager设置区域,也可以启动整个Prism基础设施从配置中加载一些模块。假设你想走艰苦的道路。
通过UserControl构造函数底部的此代码,将从App.config加载模块:
var catalog = new ConfigurationModuleCatalog
{
Store = new ConfigurationStore()
};
var logger = new TextLogger();
var moduleInitializer = new ModuleInitializer(ServiceLocator.Current, logger);
var moduleManager = new ModuleManager(moduleInitializer, catalog, logger);
moduleManager.Run();
我在ftp服务器上为您上传了一个小测试项目:我可以使用UserControl\u加载的事件触发我的引导程序吗?如果是,如何实例化引导程序?我更新了我的问题。我想你应该实例化引导程序并调用COnfigureContainer。但是,我也不确定这是否有效,因为InitializeShell方法通常调用'Application.Current.MainWindow=(Shell)this.Shell',我不确定这是否有效。
var catalog = new ConfigurationModuleCatalog
{
Store = new ConfigurationStore()
};
var logger = new TextLogger();
var moduleInitializer = new ModuleInitializer(ServiceLocator.Current, logger);
var moduleManager = new ModuleManager(moduleInitializer, catalog, logger);
moduleManager.Run();