我遇到问题,为事件处理程序分配了一个contextmenu menuitem,它被绑定为列表框的ItemContainerStyle。当右键单击并调用应用程序中的列表框项时,我会得到一个显示标题名称的上下文菜单以及另一个名为system.window.style的嵌套项。
我的XAML代码如下:
<ListBox HorizontalAlignment="Left" Margin="6,90,0,0" Name="listbox1" Width="189" FontSize="14" Height="416" VerticalAlignment="Top">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="ContextMenu">
<Setter.Value>
<ContextMenu>
<MenuItem Header="Delayed Kick" >
<Style TargetType="MenuItem">
<EventSetter Event="Click" Handler="DelayedKick_Click"/>
</Style>
</MenuItem>
</ContextMenu>
</Setter.Value>
</Setter>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
答案 0 :(得分:1)
嵌套在MenuItem中的所有内容都被解释为该项目的内容,这可能是子MenuItems,这就是为什么显示为菜单项。
以下示例将按预期工作。将MenuItem样式放在Resources元素中的任何位置。
<Grid.Resources>
<Style TargetType="MenuItem">
<EventSetter Event="Click" Handler="DelayedKick_Click"/>
</Style>
</Grid.Resources>
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="ContextMenu">
<Setter.Value>
<ContextMenu>
<MenuItem Header="Delayed Kick" />
</ContextMenu>
</Setter.Value>
</Setter>
</Style>
</ListBox.ItemContainerStyle>