Обрабатывать событие нажатия кнопки в XAML?

Это похоже на ужасно простой вопрос, но я уверен, что есть лучший способ сделать это. у меня естьButton в моем интерфейсе, который выбирает конкретную вкладку и запускаетCommand отViewModel

Вот текущий код (который отлично работает):

XAML:

<Button Content="Button!" Click="OnButtonClick" Command="{Binding WhateverCommand}" />

Код позади:

private void OnButtonClick(object sender, RoutedEventArgs e)
{
     theTab.IsSelected = true;
}

Нет ли более чистого, XAML-единственного способа сделать эту операцию пользовательского интерфейса? Я думал о чем-то вроде:

<Button Content="Button!" Click="OnButtonClick" Command="{Binding WhateverCommand}">
    <Button.Triggers>
        <EventTrigger RoutedEvent="Click">
            <Setter TargetName="theTab" Property="IsSelected" Value="True" />
        </EventTrigger>
    </Button.Trigger>
</Button>

Но, к сожалению, похоже, чтоEventTrigger не будет поддерживатьClick событие. Почему так? Я все еще иногда путаюсь с триггерами после нескольких лет работы в WPF, и это в значительной степени подводит итог. При попытке построить это у меня ошибка наSetter линия:

A value of type 'Setter' cannot be added to a collection or dictionary of type 'TriggerActionCollection'.

Спасибо!

РЕДАКТИРОВАТЬ так как я спросил структуру XAML моего окна, это выглядит так:

<DockPanel LastChildFill="True">
    <Ribbon DockPanel.Dock="Top">
        <Button Content="Button!" Click="OnButtonClick" Command="{Binding WhateverCommand}" />
    </Ribbon>
    <TabControl>
        <TabItem x:Name="theTab" />
    </TabControl>
</DockPanel>

Ответы на вопрос(3)

Ваш ответ на вопрос