将事件处理程序添加到动态添加的MenuItem

时间:2014-06-19 04:04:40

标签: c# wpf menuitem

我有MenuItem。我必须在此MenuItem中添加子MenuItem。但是通过函数返回子MenuItem的数量。所以,我在构造函数中添加了以下函数:

void AddMenuItems()
{
    for (int i = 1; i <= ItemCount(); i++)
    {
        mnuItem.Items.Add(new MenuItem() { Name = "MenuItem" + i, Header = "Menu Item " + i });
    }
}

int ItemCount()
{
    return 3;
}

我现在硬编码ItemCount()返回值。我现在想要的是,如何向这些菜单项添加点击事件。

我这样做是对的吗?我们欢迎任何有关改进此方法的建议。

1 个答案:

答案 0 :(得分:1)

您可以执行以下操作,也可以更改菜单项

for (int i = 1; i <= ItemCount(); i++)
{
    var menuItem = new MenuItem() { Name = "MenuItem" + i, Header = "Menu Item " + i };
    menuItem.Click += item_Click;
    mnuItem.Items.Add(menuItem);    
}

然后将点击处理程序定义为

void item_Click(object sender, RoutedEventArgs e)
{
    //Do stuff
}