RibbonMenuButton绑定项目单击命令

时间:2014-06-13 09:45:17

标签: c# wpf xaml data-binding ribbon-control

我对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的{​​{1}}。我的想法是在我的ViewModel中使用MenuItem并将事件绑定到此命令。但我真的不知道如何让事件对应于点击ICommand

中的项目

有人已经这样做了吗?

提前谢谢。

2 个答案:

答案 0 :(得分:3)

您可以使用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>

答案 1 :(得分:0)

您必须在VM中创建一个可以绑定的命令。然后,您必须将字典的键绑定到命令参数,以便在命令函数中使用它。也许您必须在DataTemplate中创建一个额外的Button。