2

我有一个用 XAML 代码编写的 WPFListView控件。ContextMenu每次右键单击都会显示ListViewContextMenu即使 中没有项目ListView

这是我不想要的行为。仅当ContextMenu中有项目时才应打开ListView。我对项目进行计数没有问题,但我没有找到合适的事件来抑制ContextMenu.

我怎样才能做到这一点?

4

2 回答 2

6

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

    private void listView_ContextMenuOpening(object sender, ContextMenuEventArgs e)
    {
        if (listView.Items.Count == 0)
            e.Handled = true;
    }
于 2009-08-11T14:23:54.430 回答
0

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

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

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

于 2009-08-11T14:18:54.610 回答