显示不同的上下文菜单

本文关键字:上下文 菜单 显示 | 更新日期: 2023-09-27 17:58:27

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

问题:
很难找到一种解决方案,一旦点击某个东西,就可以显示不同的上下文菜单。


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;
}

显示不同的上下文菜单

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

在MouseUp事件中,您希望鼠标按钮到底是如何按下的?