WPF: How can you add a new menuitem to a menu at runtime?

后端 未结 5 611
天命终不由人
天命终不由人 2020-12-09 03:44

I have a simple WPF application with a menu. I need to add menu items dynamically at runtime. When I simply create a new menu item, and add it onto its parent MenuItem, it

5条回答
  •  醉酒成梦
    2020-12-09 04:15

    ASP.NET -> WEB Forms -> Create Menu

    CREATE TABLE `webmenu` (
      `idmenu` smallint(5) NOT NULL,
      `submenu` smallint(5) DEFAULT NULL,
      `menu_title` varchar(45) DEFAULT NULL,
      `menu_url` varchar(45) DEFAULT NULL,
      `status` enum('1','0') DEFAULT '1',
      PRIMARY KEY (`idmenu`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
    SELECT 
    idmenu,
    (select menu_title from webmenu where idmenu=wm.submenu and status='1') as childmenu,
    menu_title,
    menu_url 
    FROM tartyp.webmenu as wm
    where
    status='1'
    order by idmenu, submenu;
    

            cmd = new MySql.Data.MySqlClient.MySqlCommand(queryStr, conn);
    
            reader = cmd.ExecuteReader();
            MainMenu.Items.Clear();
            while (reader.Read())
            {
    
                if (reader["childmenu"] == DBNull.Value)
                {
                    MenuItem homeMenuItem = new MenuItem(reader["menu_title"].ToString(), reader["menu_url"].ToString());
                    MainMenu.Items.Add(homeMenuItem);
                }
                else
                {
                    String childmenu = reader["childmenu"].ToString();                    
    
                    for (int i = 0; i < MainMenu.Items.Count; i++)
                    {
                        if (MainMenu.Items[i].Text == childmenu)
                        {                                                       
                            MenuItem childMenuItem = new MenuItem(reader["menu_title"].ToString(), reader["menu_url"].ToString());
                            MenuItem findMenuItem = MainMenu.Items[i];
                            findMenuItem.ChildItems.Add(childMenuItem);
                            break;    
                        }
                    }
                }
    
            }
            reader.Close();
            conn.Close();
    

提交回复
热议问题