获取被单击的菜单项的文本?

djc*_*uch 2 c# wpf menuitem

我有一个绑定到字符串列表的上下文菜单,以便每个菜单项的文本都是字符串列表的元素。每个菜单项都设置为相同的事件处理程序。我想做的是找出调用事件处理程序时单击了哪个菜单项。

我认为这会很简单,但我有点困惑。

如果我查看监视窗口,会发现有一个名为 FocusedItem 的菜单项属性。它包含我需要的信息,但是当我尝试使用它时,它似乎不是类的一部分,并且代码甚至无法编译,我觉得很奇怪。

有人能指出我正确的方向吗?

我遇到问题的 xaml 和代码:

<MenuItem Header="Add Object"  ItemsSource="{Binding ObjectClassList}" Click="AddObject_Click"/>

    private void AddObject_Click(object sender, RoutedEventArgs e)
    {
        MenuItem menuItem = sender as MenuItem;

        if (menuItem == null)
        {
            return;
        }

        // menuItem.FocusedItem // ?? does not compile


    }
Run Code Online (Sandbox Code Playgroud)

谢谢!

Sk9*_*k93 5

这对我有用,但不能 100% 确定这是正确的方法(尽管它是在正确的道路上!)

MenuItem m = (MenuItem)e.OriginalSource;
Run Code Online (Sandbox Code Playgroud)

我相信这是正确的,因为“容器”菜单项正在包装您添加的字符串菜单项的事件。“OriginalSource”将是单击字符串菜单项...