Что ж, похоже, здесь делается несколько (слишком много) предположений:
mnMenu.Items.Add(menuItemList[2]);
Вам следует проверить, сколько предметов вы получили.
if (menuParentList[i].MenuRole1 == "parent")
{
menuName = menuParentList[i].menuName.ToString();
menuItemList.Add(new MenuItem()); // add this
menuItemList[i].Text = menuName;
parentPosition = i;
}
И то же самое для HoverItem.
Изменить, принять 3.
Вы не можете использовать i
для индексации menuList и hoverItemколлекции, они не растут на каждом шагу.
if (menuParentList[i].MenuRole1 == "parent")
{
menuName = menuParentList[i].menuName.ToString();
var newItem = new MenuItem();
newItem.Text = menuName;
menuItemList.Add(newItem);
parentPosition = menuItemList.Count-1; // flaky
}
else if (menuParentList[i].MenuRole1 == "child")
{
var newItem = new MenuItem();
newItem.Text = menuParentList[i].menuName;
newItem.NavigateUrl = menuParentList[i].MenuLink;
hoverItem.Add(newItem);
//menuItemList[i].ChildItems.Add(hoverItem[i]);
menuItemList[parentPosition].ChildItems.Add(newItem); // I think
}