I want to set a DataTrigger for multiple DataTemplate but I am not sure if there is way to do that? I have view structured like below
<ItemsControl ItemsSource="{Binding Collection}"
              AlternationCount="2"
              ItemTemplateSelector="{StaticResource RowSelector}" >
<local:HeaderTemplateSelector x:Key="RowSelector"
            NormalTemplate="{StaticResource NormalTemplate}"
            ExpanderTemplate1="{StaticResource ExpanderTemplate1}"
            ExpanderTemplate2="{StaticResource ExpanderTemplate2}"
            ExpanderTemplate3="{StaticResource ExpanderTemplate3}"  />
<DataTemplate x:Key="NormalTemplate" ...>
    <stackpanel  x:Name="main"
<DataTemplate x:Key="ExpanderTemplate1" ...>
    <Grid  x:Name="main" ..>
<DataTemplate x:Key="ExpanderTemplate2" ...>
    <Expander  x:Name="main"
<DataTemplate x:Key="ExpanderTemplate3" ...>
    <Textblock  x:Name="main" ...>
I want this data trigger which provides alternative background for rows, the trigger defined below
<DataTemplate.Triggers>
    <Trigger Property="ItemsControl.AlternationIndex" Value="0">
        <Setter Property="Background" Value="Blue" TargetName="main"/>
    </Trigger>
    <Trigger Property="ItemsControl.AlternationIndex" Value="1">
        <Setter Property="Background" Value="black"  TargetName="main"/>
    </Trigger>
</DataTemplate.Triggers>
I can add this to the end of each DataTemplate and it works fine but it mean that I have to duplicate the some code 4 times, is there any way to avoid that? (I know I can use datagrid but it is overkill for this simple structure)
 
     
    