Search code examples
wpfribbon

RibbonSplitButton click event


Gentelman,

I'm binding a collection to RibbonSplitButton (basically, showing 3 values: red, green, blue) Everything works fine except of the problem I have to figure out which color (item) has been chosen:

Here's my code:

<r:RibbonSplitButton Name="TagEm" 
    LargeImageSource="Images\pencil_32.png"
    Label="Tag"
    ItemsSource="{Binding Path=TagCollection}"
    Click="TagEm_Click">
    <r:RibbonSplitButton.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Descr}" />
        </DataTemplate>
    </r:RibbonSplitButton.ItemTemplate>
</r:RibbonSplitButton>

Code behind:

private void TagEm_Click(object sender, RoutedEventArgs e)
{
}

Something like (Tag)TagEm.Items.CurrentItem;

Could someone give me a hint, please?

Many thanks in advance!

N.


Solution

  • Do not use the RibbonSplitButton Click event. Instead use the TextBox MouseLeftButtonUp event.

    XAML:

    <r:RibbonSplitButton
        Name="TagEm"
        LargeImageSource="Images\pencil_32.png"     
        Label="Tag"     
        ItemsSource="{Binding Path=TagCollection}">
        <r:RibbonSplitButton.ItemTemplate>
            <DataTemplate>
                <TextBlock Text="{Binding}" MouseLeftButtonUp="TextBlock_MouseLeftButtonUp" />
            </DataTemplate>
        </r:RibbonSplitButton.ItemTemplate>
    </r:RibbonSplitButton>
    

    Event Handler:

    private void TextBlock_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
    {
        Tag clickedTag = (sender as TextBlock).DataContext as Tag;
    }