C# System.Windows上下文菜单项单击事件?

C# System.Windows上下文菜单项单击事件?,c#,.net,wpf,C#,.net,Wpf,我正在制作一个WPF应用程序,但在我的代码中,我需要制作一个ContextMenu,它看起来非常简单: _menu = new ContextMenu(); _menu.Items.Add("My menu item"); 然后我用了它,一切都像一个符咒 但是,我需要知道何时单击“我的菜单项”,但我似乎找不到正确的事件,我正在搜索类似ItemClick事件的内容,但找不到它…我从未在代码中这样做,总是使用XAML。 然而,它是这样的: _menu = new ContextMenu();

我正在制作一个WPF应用程序,但在我的代码中,我需要制作一个ContextMenu,它看起来非常简单:

_menu = new ContextMenu();
_menu.Items.Add("My menu item");
然后我用了它,一切都像一个符咒


但是,我需要知道何时单击“我的菜单项”,但我似乎找不到正确的事件,我正在搜索类似ItemClick事件的内容,但找不到它…

我从未在代码中这样做,总是使用XAML。 然而,它是这样的:

 _menu = new ContextMenu();
 MenuItem mi = new MenuItem();
 mi.Items.Add("My menu item");
 mi.Click += (sender,args) =>
 {
         // Do what you want, or instead of a lambda  
         // you can even add a separate method to the class
 };
 _menu.Items.Add(mi);
    _menu = new ContextMenu();
    MenuItem item = new MenuItem();
    item.Header = "My menu item";
    item.Click += new RoutedEventHandler(item_Click);
    _menu.Items.Add(item);

唯一的疑问是将文本添加到菜单项。您必须像示例中那样尝试,或者可能向MenuItem.Items集合添加一个TextBlock

尝试添加一个可单击的项,而不仅仅是一个字符串。例如:

_menu = new ContextMenu();
MenuItem item = new MenuItem();
item.Click += MyClickHandler;
item.Header = "My Menu Item";
_menu.Items.Add(item);

我想你想要这样的东西:

 _menu = new ContextMenu();
 MenuItem mi = new MenuItem();
 mi.Items.Add("My menu item");
 mi.Click += (sender,args) =>
 {
         // Do what you want, or instead of a lambda  
         // you can even add a separate method to the class
 };
 _menu.Items.Add(mi);
    _menu = new ContextMenu();
    MenuItem item = new MenuItem();
    item.Header = "My menu item";
    item.Click += new RoutedEventHandler(item_Click);
    _menu.Items.Add(item);

MenuItem没有文本属性。我在Steve Danner的回答中看到了标题属性+1.他也是。