Esempio n. 1
0
 /// <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);