【发布时间】:2011-09-26 11:10:20
【问题描述】:
我有这样的代码:
<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>
不幸的是,它不起作用。我的上下文菜单被禁用(它正在显示但我无法单击它,因为它已被禁用)。我读过这个问题与选择问题有关,但我没有找到任何解决方案。你有什么想法?
【问题讨论】:
-
为什么要同时设置MenuItem的Click事件和Command呢?您还希望为每个项目或列表显示此 ContextMenu 吗?这里是为整个列表设置的。
-
您能否说得更具体一些或提供更多有关您的解决方案的详细信息?
-
@Ucodia :为什么要列出整个列表?看起来它是在 ListBox.ItemTemplate 中设置的?
-
是的,对不起我的错误。我对您在 StackPanel 中布置 ItemTemplate 的事实感到不安,因为 ListBox 已经在 StackPanel 中布置了项目。我会发布一个解决方案。
-
我想为每个 ListBoxItem 显示上下文菜单(我想用鼠标右键单击 ListBoxItem 以显示菜单,然后选择操作,例如删除 ListBoxItem)