public override void Add(MenuContainerItem item)
        {
            var submenu = new MenuItem
            {
                Name    = item.Key,
                Visible = item.Visible,
                Text    = item.Caption,
            };

            item.PropertyChanged += RootItem_PropertyChanged;
            var root = mainmenu.MenuItems.Find(item.RootKey, true)[0];

            root.MenuItems.Add(submenu);
        }
        /// <summary>
        /// Adds the item.
        /// </summary>
        /// <param name="item">
        /// The item.
        /// </param>
        public override void Add(MenuContainerItem item)
        {
            Guard.ArgumentNotNull(item, "item");

            RibbonPage      page  = this.GetRibbonPage(item);
            RibbonPageGroup group = GetOrCreateGroup(
                page, item.GroupCaption ?? this.GetProductName(Assembly.GetCallingAssembly()));

            BarSubItem newItem = new BarSubItem();

            newItem.Caption    = item.Caption;
            newItem.Name       = item.Key;
            newItem.LargeGlyph = item.LargeImage;

            ProcessSeperator(group.ItemLinks.Add(newItem));
            item.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(MenuContainerItem_PropertyChanged);
        }