显示不同的上下文菜单

时间:2011-06-02 20:36:28

标签: c# wpf contextmenu

目标:
如果右键单击列表视图中的行或右键单击列表视图内部而不选择行,则显示不同的上下文菜单。

问题:
很难找到能够在点击某些内容后显示不同上下文菜单的解决方案。


private void lstvdMonth_MouseRightButtonUp(object sender, MouseButtonEventArgs e)
{



    ContextMenu myContextMenu = new ContextMenu();;

    if (MouseButtonState.Released == e.RightButton)
    {


        MenuItem menuItem3 = new MenuItem();
        menuItem3.Header = "Add quantity";
        myContextMenu.Items.Add(menuItem3);
        menuItem3.Click += new RoutedEventHandler(menuItem3_Click);

        MenuItem menuItem2 = new MenuItem();
        menuItem2.Header = "Delete";
        myContextMenu.Items.Add(menuItem2);
        menuItem2.Click += new RoutedEventHandler(menuItem2_Click);
    }
    else
    {
        MenuItem menuItem1 = new MenuItem();
        menuItem1.Header = "New product";
        myContextMenu.Items.Add(menuItem1);
        menuItem1.Click += new RoutedEventHandler(menuItem1_Click);
    }

    myContextMenu.IsOpen = true;
}

1 个答案:

答案 0 :(得分:0)

我认为您应该在if中测试的是在ListView中是否选择了任何项目(例如SelectedItem == null)。

您希望鼠标按钮在MouseUp事件中完全失效的原因是什么?