我有一个菜单项,我添加了另一个项目。现在我想将click事件分配给新添加的项目。我怎么能这样做?以下是我添加菜单项的方法。
MI.Items.Add(System.IO.Path.GetFullPath(ofd.FileName));
答案 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);