Contextmenu menuitem没有被正确调用

时间:2012-03-16 08:06:09

标签: wpf xaml

我遇到问题,为事件处理程序分配了一个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>

1 个答案:

答案 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>