我对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
。现在,我试图找回已单击的
Key
的MenuItem
。我的想法是在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/