目标:
如果右键单击列表视图中的行或右键单击列表视图内部而不选择行,则显示不同的上下文菜单。
问题:
很难找到能够在点击某些内容后显示不同上下文菜单的解决方案。
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;
}
答案 0 :(得分:0)
我认为您应该在if
中测试的是在ListView中是否选择了任何项目(例如SelectedItem == null
)。
您希望鼠标按钮在MouseUp事件中完全失效的原因是什么?