2010-08-30 52 views
0

在我的测试应用程序中,ModuleCatalog从指定的目录中填入其中的所有模块。我想要做的是将所有这些模块的名称作为菜单项添加到菜单中,例如,如果我在目录中有3个模块,菜单将显示3个带有模块名称的菜单项。 我想我可以像下面那样获取ModuleInfo的列表。但miList显示0计数。这里有什么问题?PRISM/CAL ModuleCatalog问题 - 将模块绑定到菜单

protected override void ConfigureModuleCatalog() 
    { 
      DirectoryModuleCatalog directoryCatalog = new DirectoryModuleCatalog() 
                 { ModulePath = @".\Modules" }; 

      ((AggregateModuleCatalog)ModuleCatalog).AddCatalog(directoryCatalog); 
      List<ModuleInfo> miList = ModuleCatalog.Modules.ToList() ; // returns 0 items ?? 
    } 

回答

0

模块列表将在引导过程中稍后运行InitializeModules之后填充。 InitializeModules调用ModuleManager.Run()。

您可以在加载后在shell中填充菜单(通过ServiceLocator.Current获取ModuleCatalog的标记)您也可以在OnPopup事件中填充菜单。