/// <summary> /// 添加子菜单信息 /// </summary> /// <param name="data"></param> /// <param name="isUnique">子菜单是否需要检测已经添加</param> public void AddChildMenuData(MenuData data, bool isUnique = true) { if (isUnique && ChildMenus.Contains(data)) { return; } ChildMenus.Add(data); data.Parent = this; }
public MenuData(string menuName = "", object attachedData = null, string iconUrl = "", bool isAllowMutiPanel = false, MenuData parent = null) { Name = menuName; AttachedData = attachedData; IconUrl = iconUrl; Parent = parent; IsAllowMutiPanel = isAllowMutiPanel; ChildMenus = new List <MenuData>(); MenuID = GenMenuID(); }
/// <summary> /// 在根菜单中找出menuID的菜单,没有则返回null /// </summary> /// <param name="rootMenu"></param> /// <param name="menuID"></param> /// <returns></returns> public static MenuData FindMenuDataOnId(this MenuData rootMenu, string menuID) { MenuData target = null; foreach (var eChild in rootMenu.ChildMenus) { target = LoopFindMenuData(eChild, menuID); if (null != target) { return(target); } } return(null); }
/// <summary> /// 递归查找 /// </summary> /// <param name="data"></param> /// <param name="findID"></param> /// <returns></returns> static MenuData LoopFindMenuData(MenuData data, string findID) { if (data.MenuID == findID) { return(data); } foreach (var eChild in data.ChildMenus) { var findData = LoopFindMenuData(eChild, findID); if (null != findData) { return(findData); } } return(null); }