/// <summary> /// Метод осуществляет получение индекса в списке элементов меню. /// </summary> /// <param name="item">Пунк меню из коллекции.</param> /// <returns> /// Индекс в массиве. /// </returns> public int GetItemIndex(XMenuItemBase item) { for (int i = 0; i < m_items.Count; ++i) { if (((XMenuItemBase)m_items[i]).UniqueID == item.UniqueID) { return(i); } } return(-1); }
/// <summary> /// Метод осуществляет вставку инициализированного пункта меню перед /// указанным элементом. /// </summary> /// <param name="item_new">Добавляемый пункт меню.</param> /// <param name="item_before">Пункт меню, перед которым происходит вставка.</param> /// <exception cref="ArgumentException">Если элемент, переданный в /// параметре <b><i>item_before</i></b>, /// не найден в коллекции элементов.</exception> public void InsertBefore(XMenuItemBase item_new, XMenuItemBase item_before) { int nIndex = GetItemIndex(item_before); if (nIndex > -1) { m_items.Insert(nIndex, item_new); } else { throw new ArgumentException("Элемент item_before не найден в коллекции"); } }
/// <summary> /// Метод осуществляет вставку инициализированного пункта меню после /// указанного элемента. /// </summary> /// <param name="item_new">Добавляемый пункт меню.</param> /// <param name="item_after">Пункт меню, после которого происходит /// вставка.</param> /// <exception cref="ArgumentException">Если элемент, переданный в /// параметре <b><i>item_after</i></b>, /// не найден в коллекции элементов.</exception> public void InsertAfter(XMenuItemBase item_new, XMenuItemBase item_after) { int nIndex = GetItemIndex(item_after); if (nIndex > -1) { m_items.Insert(nIndex + 1, item_new); } else { throw new ArgumentException("Элемент item_after не найден в коллекции"); } }
/// <summary> /// Метод вставляет инициализированный пункт меню под заданным индексом. /// </summary> /// <param name="nIndex">Индекс добавляемого пункта меню.</param> /// <param name="item">Добавляемый пункт меню.</param> public void Insert(int nIndex, XMenuItemBase item) { m_items.Insert(nIndex, item); }
/// <summary> /// Метод осуществляет добавление инициализированного пункта меню в конец /// списка элементов. /// </summary> /// <param name="item">Пункт меню, который необходимо добавить.</param> public void Add(XMenuItemBase item) { m_items.Add(item); }