public void menuItem_Click(object sender, RoutedEventArgs e)
        {
            MenuItem item = e.Source as MenuItem;            switch (item.Name)
            {
                case "menuItem21":// 无
                    {
                        MessageBoxResult mbr = MessageBox.Show("您确定要将此书籍结果置为 " + item.Header + " 吗?", "提示", MessageBoxButton.YesNo, MessageBoxImage.Warning, MessageBoxResult.No);
                        if (mbr == MessageBoxResult.Yes)
                        {
                            UpdateReviseAction(0, StateKind.RESULTSTATE);
                        }
                    }
                    button27_Click(this, new RoutedEventArgs());
                    break;
                case "menuItem22":// 有
                    {
                        MessageBoxResult mbr = MessageBox.Show("您确定要将此书籍结果置为 " + item.Header + " 吗?", "提示", MessageBoxButton.YesNo, MessageBoxImage.Warning, MessageBoxResult.No);
                        if (mbr == MessageBoxResult.Yes)
                        {
                            UpdateReviseAction(1, StateKind.RESULTSTATE);
                        }
                    }
                    button27_Click(this, new RoutedEventArgs());
                    break;
                case "menuItem23":// 多个
                    {
                        MessageBoxResult mbr = MessageBox.Show("您确定要将此书籍结果置为 " + item.Header + " 吗?", "提示", MessageBoxButton.YesNo, MessageBoxImage.Warning, MessageBoxResult.No);
                        if (mbr == MessageBoxResult.Yes)
                        {
                            UpdateReviseAction(2, StateKind.RESULTSTATE);
                        }
                    }
                    button27_Click(this, new RoutedEventArgs());
                    break;

解决方案 »

  1.   

    menuItem_Click可能被注册了两次
      

  2.   


    同意,检查下是不是进入到了menuItem_Click中两次。
      

  3.   

    case中无需花括号{}包围,如果要的话,右花括号}要放到break;之后
      

  4.   

    真是慧眼呐!!果然。当时COPY的 MenuItem 标签没去掉Click事件,不过我没点击上级菜单,只是点击了他的子菜单也触发了上级菜单的Click事件,好诡异哟!诡异!诡异!诡异!