Esempio n. 1
0
        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;
            }
        }
Esempio n. 2
0
 private void CreateSelectLayoutSubmenu(DXPopupMenu menu)
 {
     DXCustomMenuCreator.DXCreateLayoutMenuItems(this, ref menu);
 }