Невозможно повторно использовать один экземпляр Interaction.Triggers
в ресурсе, поскольку он становится связанным элементом управления.Это вложение становится частью его состояния, поэтому один экземпляр не может использоваться несколькими элементами управления.
Вам необходимо включить Interaction.Triggers
в шаблон, чтобы создать несколько экземпляров.Я думаю, что может сработать что-то вроде следующего (предупреждающий код):
<UserControl.Resources>
<DataTemplate x:key="MyTextBox">
<TextBox>
<i:Interaction.Triggers>
<i:EventTrigger EventName="KeyDown">
<cal:ActionMessage MethodName="KeyPressed" />
</i:EventTrigger>
</i:Interaction.Triggers>
</TextBox>
</DataTemplate>
</UserControl.Resources>
...
<ContentPresenter x:Name="FirstName" Grid.Row="1" Grid.Column="1" ContentTemplate="{StaticResource MyTextBox}" />
<ContentPresenter x:Name="Initial" Grid.Row="1" Grid.Column="1" ContentTemplate="{StaticResource MyTextBox}" />
<ContentPresenter x:Name="LastName" Grid.Row="1" Grid.Column="1" ContentTemplate="{StaticResource MyTextBox}" />
По моему мнению, такого рода вещи не стоят того.Материал «Interaction Triggers» действительно нацелен на расширение возможностей дизайнера, а не разработчика.Дизайнер не так беспокоится, что в «коде» есть какое-то повторение.