单击事件以添加新添加的菜单项

时间:2012-03-24 23:27:44

标签: c# wpf events menuitem

我有一个菜单项,我添加了另一个项目。现在我想将click事件分配给新添加的项目。我怎么能这样做?以下是我添加菜单项的方法。

MI.Items.Add(System.IO.Path.GetFullPath(ofd.FileName));

3 个答案:

答案 0 :(得分:1)

只需创建MenuItem类的新实例并订阅Click事件:

MenuItem newMenuItem = new MenuItem();
newMenuItem.Header = System.IO.Path.GetFullPath(ofd.FileName);
newMenuItem.Click += MenuItemOnClick; // The handler.
MI.Items.Add(newMenuItem);

答案 1 :(得分:0)

Add返回一个整数,指示添加的项的索引,然后您可以使用此索引访问集合的元素,因此订阅一个事件,因此您必须执行以下操作:

var index = MI.Items.Add(System.IO.Path.GetFullPath(ofd.FileName));
((UIElement)MI.Items.GetItemAt(index)).MouseLeftButtonUp += OnMenuItemMouseUp;

void OnMenuItemMouseUp (object sender, MouseButtonEventArgs e) {

}

答案 2 :(得分:0)

通过索引获取MenuItem并使用+=语法附加事件处理程序:

int itemIndex = MI.Items.Add(System.IO.Path.GetFullPath(ofd.FileName));
MenuItem item = MI.Items[itemIndex] as MenuItem;
item.Click += new RoutedEventHandler(Item_Click);