递归生成菜单问题。
WY刘文 2016-05-03 09:01:01 WPF下递归调用数据生成菜单MENUITEM,只能生成顶层菜单项。请帮看看问题出在哪里?谢谢!!
递归函数
public void LoadSubMenu(MenuItem topMenu, int MtID)
{
try
{
DataView dvList = new DataView(allMenu);
dvList.RowFilter = "parentid=" + MtID.ToString();
MenuItem subMenu;
//if (dvList.Count > 0)
//{
foreach (DataRowView dv in dvList)
{
//创建子菜单项
subMenu = new MenuItem();
subMenu.Name = dv["menu_name"].ToString();
subMenu.Header = dv["MENU_HEADER"].ToString();
//判断是否为顶级菜单
if (MtID == 0)
{
this.menu_Main.Items.Add(subMenu);
}
else
{
topMenu.Items.Add(subMenu);
}
//递归调用
LoadSubMenu(subMenu, Convert.ToInt32(dv["menuid"]));
}
//}
}
catch (Exception er)
{
throw new Exception(er.Message);
}
}
在一个BUTTON的单事件中调用
MenuOperate moc = new MenuOperate();
allMenu = moc.Sel_Menu();//此为局部变量类型为DataTable
LoadSubMenu(null,0);//
表结构(无父项项PARENTID为0)
MENUID(菜单项编号) MENU_HEADER(菜单项显示文本) PARENTID(父项编号)