2009-08-11 32 views
2

我有一个WPF ListView控件,其中有一个用XAML代码编写的ContextMenu。每当在ListView上单击鼠标右键时,即使ListView中没有项目,也会显示ContextMenuWPF:抑制用于ListView的ContextMenu

这是我不想要的行为。 ContextMenu应该只在ListView中有项目时才能打开。我没有计算物品的问题,但我没有找到合适的事件来压制ContextMenu

我该怎么做?

回答

6

处理的ContextMenuOpening事件的ListView取消菜单,如果列表为空:

private void listView_ContextMenuOpening(object sender, ContextMenuEventArgs e) 
    { 
     if (listView.Items.Count == 0) 
      e.Handled = true; 
    } 
+0

+1为了有一个更好的和比我的答案简单。 – 2009-08-11 14:30:36

+0

谢谢。它的工作方式应该如此。 – TalkingCode 2009-08-12 07:34:23

0

我的WPF技能仍然处于新手级别,所以这可能不是最好的答案。

我会将ListView ContextMenu属性绑定到代码隐藏中的属性。该属性可以检查你的列表框并根据需要返回null或适当的上下文菜单。由于这些都是基于视图级别的详细信息,因此它不会触及您的业务逻辑并导致您想要的行为。

让我知道如果你想有一个代码示例为此走近