Обрабатывать событие нажатия кнопки в 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>