WPF:为ListView抑制ContextMenu

时间:2009-08-11 14:08:00

标签: wpf listview contextmenu

我有一个WPF ListView控件,其中ContextMenu用XAML代码编写。即使ListView中没有任何项目,ContextMenu也会显示ListView。{/ p>

这是我不想要的行为。 ContextMenu只应在ListView中有项目时打开。我没有问题计算项目,但我找不到正确的事件来取消ContextMenu

我该怎么做?

2 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:0)

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

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

如果您需要此方法的代码示例,请告诉我