我有一个WPF ListView
控件,其中ContextMenu
用XAML代码编写。即使ListView
中没有任何项目,ContextMenu
也会显示ListView
。{/ p>
这是我不想要的行为。 ContextMenu
只应在ListView
中有项目时打开。我没有问题计算项目,但我找不到正确的事件来取消ContextMenu
。
我该怎么做?
答案 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或相应的上下文菜单。由于这完全基于视图级别的详细信息,因此它不会触及您的业务逻辑并导致您想要的行为。
如果您需要此方法的代码示例,请告诉我