/// <summary> /// Data context changed event handler /// </summary> /// <param name="sender">Event sender.</param> /// <param name="e">Event args.</param> private void MainWindows_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e) { DynamicMenuItemViewModel menuItemViewModel = (DynamicMenuItemViewModel)e.NewValue; menuItemViewModel.RaiseNotifyMenuItemEvent += this.NotifyMenuItemEventHandler; menuItemViewModel.RaiseNotifyMenuItemClearEvent += this.NotifyMenuItemClearEventHandler; this.RaiseLoadMenuItemRequestEvent += menuItemViewModel.LoadDynamicMenuRequestEventHandler; this.RaiseUnloadMenuItemRequestEvent += menuItemViewModel.UnloadDynamicMenuItemRequestEventHandler; }
/// <summary> /// /// </summary> /// <returns></returns> public IEnumerable <DynamicMenuItemViewModel> GetDynamicMenuItems() { var results = new List <DynamicMenuItemViewModel>(); foreach (var dynamicEntityMetadata in DynamicMVCContext.DynamicEntityMetadatas.Where(x => x.DynamicMenuInfo.HasMenuItem)) { var menuItem = new DynamicMenuItemViewModel(dynamicEntityMetadata, dynamicEntityMetadata.DynamicMenuInfo.MenuItemDisplayName); var parentMenu = results.SingleOrDefault(x => x.DisplayName == dynamicEntityMetadata.DynamicMenuInfo.MenuItemCategory); if (parentMenu == null) { parentMenu = new DynamicMenuItemViewModel(dynamicEntityMetadata.DynamicMenuInfo.MenuItemCategory); results.Add(parentMenu); } parentMenu.DynamicMenuItemViewModels.Add(menuItem); } return(results); }