我有一个用 XAML 代码编写的 WPFListView
控件。ContextMenu
每次右键单击都会显示ListView
,ContextMenu
即使 中没有项目ListView
。
这是我不想要的行为。仅当ContextMenu
中有项目时才应打开ListView
。我对项目进行计数没有问题,但我没有找到合适的事件来抑制ContextMenu
.
我怎样才能做到这一点?
我有一个用 XAML 代码编写的 WPFListView
控件。ContextMenu
每次右键单击都会显示ListView
,ContextMenu
即使 中没有项目ListView
。
这是我不想要的行为。仅当ContextMenu
中有项目时才应打开ListView
。我对项目进行计数没有问题,但我没有找到合适的事件来抑制ContextMenu
.
我怎样才能做到这一点?
如果列表为空,则处理 ListView 的ContextMenuOpening
事件以取消菜单:
private void listView_ContextMenuOpening(object sender, ContextMenuEventArgs e)
{
if (listView.Items.Count == 0)
e.Handled = true;
}
我的 WPF 技能还处于新手级别,所以这可能不是最好的答案。
我会将 ListView ContextMenu 属性绑定到代码隐藏中的属性。此属性可以检查您的列表框并根据需要返回 null 或适当的上下文菜单。由于这一切都基于视图级别的详细信息,因此它不会触及您的业务逻辑并导致您想要的行为。
如果您想要此方法的代码示例,请告诉我