private void MenuAdd(ref Menu MenuAtual, MenuItem NovoItemMenu, string iNivelMenu, string ParentIDSemMenu) { if (iNivelMenu == "0") { MenuAtual.Items.Add(NovoItemMenu); } else { foreach (MenuItem x in MenuAtual.Items) { if (iNivelMenu == "1") { if (x.Value.Equals(ParentIDSemMenu)) { MenuAtual.Items[MenuAtual.Items.IndexOf(x)].ChildItems.Add(NovoItemMenu); // aqui eu adiciono o SUBMENU ao menu PAI correto. Mas não está funcionando direito break; // sai do FOR } } else { foreach (MenuItem x2 in MenuAtual.Items[MenuAtual.Items.IndexOf(x)].ChildItems) { if (Convert.ToInt32(iNivelMenu) == 2) { if (x2.Value.Equals(ParentIDSemMenu)) { MenuAtual.Items[MenuAtual.Items.IndexOf(x)].ChildItems[MenuAtual.Items[MenuAtual.Items.IndexOf(x)].ChildItems.IndexOf(x2)].ChildItems.Add(NovoItemMenu); break; // sai do FOR } } else if (Convert.ToInt32(iNivelMenu) == 3) { foreach (MenuItem x3 in MenuAtual.Items[MenuAtual.Items.IndexOf(x)].ChildItems[MenuAtual.Items[MenuAtual.Items.IndexOf(x)].ChildItems.IndexOf(x2)].ChildItems) { if (x3.Value.Equals(ParentIDSemMenu)) { //Incluir o codigo aqui para o nivel 3 break; // sai do FOR } } } } } } } }