如何正确绑定菜单项?

poc*_*oco 8 data-binding wpf mvvm menuitem commandparameter

如何正确绑定动态创建的菜单项列表.我尝试了几件事,但似乎都没有效果.我得到了正确的名单,但我的ViewSwitchCommand似乎没有正确启动.

<MenuItem Foreground="White" Header="Names" ItemsSource="{Binding Player.ToonNames}" Command="{Binding ViewSwitchCommand}" CommandParameter="{Binding Header}"/>
Run Code Online (Sandbox Code Playgroud)

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

<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>
Run Code Online (Sandbox Code Playgroud)

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

svi*_*ick 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>
Run Code Online (Sandbox Code Playgroud)

  • 水晶球是非常有帮助的先生,你应该看看他们!我没有机会测试您的最新代码,但是能够在第一次编辑时使用它,感谢您的帮助 (5认同)