/// <summary> /// Create an instance of <seealso cref="ResourceTypeItemViewModel"/> class. /// </summary> /// <param name="resourceKeys"><seealso cref="ResourceTypeKeys"/> object.</param> /// <param name="dataSource">The logging data source.</param> /// <param name="parent">The parent menu item view model object.</param> public ResourceTypeItemViewModel(ResourceKeys resourceKeys, Lazy <LoggingDataSource> dataSource, MenuItemViewModel parent) : base(parent) { _dataSource = dataSource; ResourceTypeKeys = resourceKeys; Header = ResourceTypeKeys.Type; IsSubmenuPopulated = ResourceTypeKeys.Keys?.FirstOrDefault() == null; // MenuItem determins the MenuRole of SubmenuItem or SubMenuItemHeader by checking if it has sub menuitems. // Adding an invisible item for delay load menu items so that it is recognized as SubMenuItemHeader role. // By setting this role, popup is visible. Otherwise popup is invisible. if (!IsSubmenuPopulated) { MenuItems.Add(MenuItemViewModel.InvisibleItem); } }
/// <summary> /// Child menu item calls parent's bubbling handler when it is clicked. /// </summary> /// <param name="originalSource">The original menu item that fires the selected event.</param> protected virtual void CommandBubblingHandler(MenuItemViewModel originalSource) => MenuItemParent?.CommandBubblingHandler(originalSource);