我有这样的代码:
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical"
ContextMenuService.ShowOnDisabled="True">
<StackPanel.ContextMenu>
<ContextMenu>
<MenuItem Command="Delete" Click="DeleteEvent">
</MenuItem>
</ContextMenu>
</StackPanel.ContextMenu>
<TextBlock Text="{Binding EventName}">
</TextBlock>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
不幸的是它不起作用。我的上下文菜单被禁用(它显示,但我不能点击它,因为它被禁用)。我读到这个问题与选择问题有关,但我没有找到任何解决方案。你有什么想法?
3条答案
按热度按时间yqlxgs2m1#
您正在尝试设置Command和Click事件。您应该设置其中一个。操作被禁用可能是因为您正在设置值为CanExecute = false的Command;
您可以尝试按如下方式设置ListBoxItem的ItemContainerStyle,而不是编写DataTemplate:
在这里,我直接设置了ListBoxItem示例的ContextMenu,这样它将在右侧控件上显示菜单。
sqxo8psd2#
列表框已经有一个MenuContext。您可以试试
jobtbby33#
您只需要将command更改为header并处理DeleteEvent