8

我如何正确绑定动态创建的菜单项列表。我尝试了几件事,但似乎都没有。我得到了正确的名称列表,但是我的 ViewSwitchCommand 似乎没有正确触发。

<MenuItem Foreground="White" Header="Names" ItemsSource="{Binding Player.ToonNames}" Command="{Binding ViewSwitchCommand}" CommandParameter="{Binding Header}"/>

但是,如果我不动态地这样做并且这样做,那么一切正常就可以让它工作

<MenuItem Foreground="White" Header="Names">
<MenuItem Foreground="Black" Header="Chat" Command="{Binding ViewSwitchCommand}"     CommandParameter="player1" />
<MenuItem Foreground="Black" Header="Craft" Command="{Binding ViewSwitchCommand}" CommandParameter="player2" />
</MenuItem>

命令参数需要一个字符串..不确定是否是这样...希望这是我只是忽略的简单

4

1 回答 1

16

这段代码对我有用:

<MenuItem Header="Names" ItemsSource="{Binding Player.ToonNames}">
    <MenuItem.ItemContainerStyle>
        <Style TargetType="MenuItem">
            <Setter Property="Command" Value="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=MenuItem}, Path=DataContext.ViewSwitchCommand}" />
            <Setter Property="CommandParameter" Value="{Binding}" />
        </Style>
    </MenuItem.ItemContainerStyle>
</MenuItem>
于 2011-06-06T00:21:19.983 回答