MEF:一个区域,同时显示多个视图

时间:2011-02-18 15:26:26

标签: silverlight mef regions

我正在尝试构建一个包含shell应用程序和后续模块的模块化应用程序。我想为模块定义导航区域以显示超链接按钮。我在shell的视图中将此区域称为“NavigationRegion”:

<ItemsControl Name="NavigationRegion" prism:RegionManager.RegionName="NavigationRegion" />

在每个模块的initialize方法中,我调用导航区域的add方法:

public void Initialize() {
    regionManager.Regions["NavigationRegion"].Add(new Views.Navigation());
}

使用AggregateCatalog.Catalogs.Add方法将模块全部加载到引导程序中:

this.AggregateCatalog.Catalogs.Add(new AssemblyCatalog(typeof(Orders.OrderModule).Assembly));
this.AggregateCatalog.Catalogs.Add(new AssemblyCatalog(typeof(People.PeopleModule).Assembly));

问题是,只显示其中一个视图,它是第一个添加到目录视图的程序集。那么如何将所有添加到导航区域的视图显示出来?或者我是否应该使用其他方法同时显示所有视图?

1 个答案:

答案 0 :(得分:0)

ItemsControl需要告诉它显示多个项目:

<ItemsControl.ItemsPanel>
     <ItemsPanelTemplate>
        <toolkit:WrapPanel />
    </ItemsPanelTemplate>
</ItemsControl.ItemsPanel>