这涉及复合材料的应用程序的指导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激活模块,然后其他模块中可能重叠的,通过它们设定的知名度。塌了?

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