protected virtual void CustomMenuPopupMenuShowing(object sender, PopupMenuShowingEventArgs e) { //При вызове обычного меню на клике по строке switch (e.MenuType) { case GridMenuType.User: case GridMenuType.Row: RepositoryItem repository = null; //Показать меню для выбора значения выделенных строк if (OptionsBehavior.Editable && OptionsCustomization.ShowSelectedRowMenu && FocusedColumn != null && FocusedColumn.OptionsColumn.ShowEditorInPopupMenu && FocusedColumn.OptionsColumn.AllowEdit && !FocusedColumn.OptionsColumn.ReadOnly && SelectedRowsCount > 1) { repository = DXCustomMenuCreator.DXCreateBarItemByFocusedColumn(FocusedColumn); var buttonRepository = repository as RepositoryItemButtonEdit; if (buttonRepository != null && buttonRepository.Buttons.Count > 1) { buttonRepository.ButtonClick += ClearSelectedRowsFromMenu; } } if (CustomPopupMenu != null) { AddButtonInPopupMenu(); DeleteButtonInPopupMenu(); var link = CustomPopupMenu.ItemLinks .OfType <BarEditItemLink>() .FirstOrDefault(bei => bei.Item.Id == -1); if (link != null) { CustomPopupMenu.RemoveLink(link); } if (repository != null) { var bei = new BarEditItem { Edit = repository, Id = -1, Tag = FocusedColumn }; bei.EditValueChanged += SelectedRowEditValueChanged; CustomPopupMenu.AddItem(bei); } } else { var dxmAdd = new DXMenuItem(AddCaption, AddRow, Resources.Add); var dxmRemove = new DXMenuItem(RemoveCaption, RemoveRows, Resources.Remove); if (e.MenuType == GridMenuType.User && e.Menu == null) { e.Menu = new GridViewMenu(this); } if (OptionsCustomization.AllowAdd) { e.Menu.Items.Add(dxmAdd); } if (OptionsCustomization.AllowDelete) { e.Menu.Items.Add(dxmRemove); dxmRemove.Enabled = SelectedRowsCount != 0; } if (repository != null) { var bei = new DXEditMenuItem { Edit = repository, Tag = FocusedColumn }; bei.EditValueChanged += SelectedRowEditValueChanged; e.Menu.Items.Add(bei); } } break; case GridMenuType.Column: DXPopupMenu menu = e.Menu as GridViewColumnMenu; if (menu == null) { return; } DXCustomMenuCreator.HideCustomizationColumns(menu); DXCustomMenuCreator.DXCreateSelectSelectionMenu(menu, CustomItemClick, RowItemClick, CheckboxColumnItemClick); DXCustomMenuCreator.DXCreateLayoutMenuItems(GridControl, ref menu); break; } }
private void CreateSelectLayoutSubmenu(DXPopupMenu menu) { DXCustomMenuCreator.DXCreateLayoutMenuItems(this, ref menu); }