我有一个WPF ListView
控件,其中有一个用XAML代码编写的ContextMenu
。每当在ListView
上单击鼠标右键时,即使ListView
中没有项目,也会显示ContextMenu
。WPF:抑制用于ListView的ContextMenu
这是我不想要的行为。 ContextMenu
应该只在ListView
中有项目时才能打开。我没有计算物品的问题,但我没有找到合适的事件来压制ContextMenu
。
我该怎么做?
我有一个WPF ListView
控件,其中有一个用XAML代码编写的ContextMenu
。每当在ListView
上单击鼠标右键时,即使ListView
中没有项目,也会显示ContextMenu
。WPF:抑制用于ListView的ContextMenu
这是我不想要的行为。 ContextMenu
应该只在ListView
中有项目时才能打开。我没有计算物品的问题,但我没有找到合适的事件来压制ContextMenu
。
我该怎么做?
处理的ContextMenuOpening
事件的ListView取消菜单,如果列表为空:
private void listView_ContextMenuOpening(object sender, ContextMenuEventArgs e)
{
if (listView.Items.Count == 0)
e.Handled = true;
}
我的WPF技能仍然处于新手级别,所以这可能不是最好的答案。
我会将ListView ContextMenu属性绑定到代码隐藏中的属性。该属性可以检查你的列表框并根据需要返回null或适当的上下文菜单。由于这些都是基于视图级别的详细信息,因此它不会触及您的业务逻辑并导致您想要的行为。
让我知道如果你想有一个代码示例为此走近
+1为了有一个更好的和比我的答案简单。 – 2009-08-11 14:30:36
谢谢。它的工作方式应该如此。 – TalkingCode 2009-08-12 07:34:23