Редактировать: Не обращайте на это внимания, если только вы не хотите создать подкласс TextBox для выполнения команды над TextChanged. (Я думаю, что триггерный метод должен быть предпочтительным.)
Но возможно сделать ссылку на
Ресурсные словари к событию
расположенный в CodeBehind of
Окно, где этот элемент управления?
Представьте себе следующее, а не мы
устанавливают событие для элемента управления в
XAML, мы делаем это в словаре
в стиле. Это возможно?
Я бы предложил Команды для этого; определить где-нибудь RoutedCommand:
public static class Commands
{
public static RoutedCommand DoStuff = new RoutedCommand();
}
Установите его на кнопку в словаре:
<Button x:Key="TheButton" Content="Click"
Command="{x:Static local:Commands.DoStuff}" />
И создайте привязку команды:
<Grid>
<Grid.CommandBindings>
<CommandBinding Command="{x:Static local:Commands.DoStuff}"
Executed="DoStuff_Executed"
CanExecute="DoStuff_CanExecute"/>
</Grid.CommandBindings>
<StaticResource ResourceKey="TheButton"/>
</Grid>
private void DoStuff_Executed(object sender, ExecutedRoutedEventArgs e)
{
// What happens if the command is executed, in this case the Button-click can
// cause this to happen, you can also create KeyBindings which can execute
// commands for example.
MessageBox.Show("!");
}
private void DoStuff_CanExecute(object sender, CanExecuteRoutedEventArgs e)
{
e.CanExecute = true; //No condition: Command can always be executed
// e.CanExecute = false causes the button to be disabled.
}