Ejemplo n.º 1
0
 /// <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;
 }
Ejemplo n.º 2
0
 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();
 }
Ejemplo n.º 3
0
        /// <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);
        }
Ejemplo n.º 4
0
 /// <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);
 }