private BarButtonItem AddMenuButtonItem(BarSubItem ParentBarSubItem, XOMenuItem MenuItem)
        {
            BarButtonItem buttonItem = AddMenuButtonItem(ParentBarSubItem, MenuItem.Caption, GetKeys(MenuItem.XWPMenuItem));

            if (!string.IsNullOrEmpty(MenuItem.TableName))
            {
                Controller appItemController = Controller.controllerContext.Controllers.FirstOrDefault(p => p.TableContext.Name == MenuItem.TableName);

                if (appItemController != null)
                {
                    appItemController.Commands.AddCommandItem(new DXBarButtonCommandItem(ControllerCommandTypes.ListShow, buttonItem));

                    appItemController.UpdateStates();
                }
            }

            return buttonItem;
        }
        private void BuildMenuItem(DevExpress.XtraBars.BarSubItem ParentBarSubItem, XOMenuItem MenuItem)
        {
            if (MenuItem.Children.Length > 0)
            {
                BarSubItem barSubItem = AddMenuSubItem(ParentBarSubItem, MenuItem);

                foreach (XOMenuItem menuItem in MenuItem.Children)
                    BuildMenuItem(barSubItem, menuItem);
            }
            else
            {
                _menuButtons.Add(MenuItem.TableName, AddMenuButtonItem(ParentBarSubItem, MenuItem));
            }
        }
        private BarSubItem AddMenuSubItem(BarSubItem ParentBarSubItem, XOMenuItem MenuItem)
        {

            return AddMenuSubItem(ParentBarSubItem, MenuItem.Caption);
        }