2010-08-30 54 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事件中填充菜單。