public ModuleRootViewModel(Core.Plugins.Abstract.Module module, IProfileEditorViewModelFactory profileEditorViewModelFactory) { DisplayName = module?.DisplayName; Module = module; _profileEditorViewModelFactory = profileEditorViewModelFactory; Task.Run(AddTabsAsync); }
public void RemoveModule(Core.Plugins.Abstract.Module module) { // If not in the list there's nothing to do if (SidebarItemObjects.All(io => io.Value != module)) return; var existing = SidebarItemObjects.First(io => io.Value == module); SidebarItems.Remove(existing.Key); SidebarItemObjects.Remove(existing.Key); }
public void AddModule(Core.Plugins.Abstract.Module module) { // Ensure the module is not already in the list if (SidebarItemObjects.Any(io => io.Value == module)) return; // Icon is provided as string to avoid having to reference MaterialDesignThemes var parsedIcon = Enum.TryParse<PackIconKind>(module.DisplayIcon, true, out var iconEnum); if (parsedIcon == false) iconEnum = PackIconKind.QuestionMarkCircle; var sidebarItem = new FirstLevelNavigationItem {Icon = iconEnum, Label = module.DisplayName}; SidebarItems.Add(sidebarItem); SidebarItemObjects.Add(sidebarItem, module); }