我如何可以启用/停用一个模块的观点之后,其初始化?
-
21-08-2019 - |
题
这涉及复合材料的应用程序的指导WPF,或棱柱。
我有一个"MainRegion"在我的外壳。我的各个模块将被加载到这个主要区域。我可以填写一个列表中的可用模块在一个菜单和选择他们的负荷。在点菜单我要做的:
var module = moduleEnumerator.GetModule(moduleName);
moduleLoader.Initialize(new[] { module });
在第一时间的所有工作确定,因为初始化()方法的模块执行,但在模块1,Module2和Module3初始化,没有什么发生在我击负荷Module2。
我的问题:我怎么能激活模块上的需求,之后,其初始化方法已经执行?
谢谢你的帮助!
解决方案
你实际上没有激活模块。你活在一个区域。采取一读这个 文章.
初始化方法只是称为,一旦任何模块。事实上,你正在看到一个视图模块被激活时你叫LoadModule我的猜测是由于这样的事实,Initilalize方法是登记便与一个区域。这将激活的看法。如果你有多于一个图,然后最后一个注册会的活动之一。
来激活一个视需要调激活的方法区域(假定一个注IUnityContainer和IRegionManager)...
// Get a view from the container.
var view = Container.Resolve<MyView>();
// Get the region.
var region = RegionManager.Regions["MyRegion"];
// Activate the view.
region.Activate(view);
根据不同类型的区域控制这将替换看法,即存在或增加。
其他提示
你可以除去一个图通过调用地区的清除方法。
public void RemoveViewFromRegion(string viewName, string regionName, object defaultView)
{
IRegion region = regionManager.Regions[regionName];
object view = region.GetView(viewName);
region.Remove(view);
region.Activate(defaultView);
}
你应该有一个型,将是你的区域。然后你将需要添加所有的模块,这一地区。当你点击的菜单中应使用激活(...)方法的地区,以启动特定的模块。
这是不是意味着当yuou激活模块,然后其他模块中可能重叠的,通过它们设定的知名度。塌了?
不隶属于 StackOverflow