我对RibbonMenuButton有问题。目前我有:

<RibbonMenuButton Label="Meeting" Width="Auto" ToolTipDescription="Display requests on the agenda for the meeting selected" ToolTipTitle="Meeting"
                                  LargeImageSource="pack://application:,,,/Resources/meeting.png"
                                  ItemsSource="{Binding MeetingsAvailable}">

    <RibbonMenuButton.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Value}"/>
        </DataTemplate>
    </RibbonMenuButton.ItemTemplate>
</RibbonMenuButton>


我的MeetingsAvailable实际上是一个Dictionary<int, string>。此代码有效,RibbonMenuButton很好地显示了词典的每个Value

现在,我试图找回已单击的KeyMenuItem。我的想法是在ViewModel中使用ICommand并将事件绑定到此命令。但是我真的不知道如何获得与单击RibbonMenuButton中的项目相对应的事件。

有人已经这样做了吗?

先感谢您。

最佳答案

您可以使用ICommand属性将RibbonMenuButton绑定到ItemContainerStyle,如下所示:

<RibbonMenuButton Label="Meeting" ItemsSource="{Binding MeetingsAvailable}" ... >
    <RibbonMenuButton.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Value}"/>
        </DataTemplate>
    </RibbonMenuButton.ItemTemplate>
    <RibbonMenuButton.ItemContainerStyle>
        <Style TargetType="{x:Type MenuItem}">
            <Setter Property="Command" Value="{Binding DataContext.NameOfCommand,
                RelativeSource={RelativeSource AncestorType={x:Type Views:View}}}" />
            <Setter Property="CommandParameter" Value="{Binding Key}" />
        </Style>
    </RibbonMenuButton.ItemContainerStyle>
</RibbonMenuButton>

关于c# - RibbonMenuButton绑定(bind)项已单击命令,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24202376/

10-10 21:36