I want to utilise the following style on multiple ellipse in my application. Is there an easier way of making the style common but change the binding? I would prefer not replicate the same code over and over again.
<Style TargetType="Ellipse" x:Key="TeamColors">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=ColorNo}" Value="1">
<Setter Property="Fill" Value="Red"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding Path=ColorNo}" Value="2">
<Setter Property="Fill" Value="Yellow"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding Path=ColorNo}" Value="3">
<Setter Property="Fill" Value="Lime"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding Path=ColorNo}" Value="4">
<Setter Property="Fill" Value="Black"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding Path=ColorNo}" Value="0">
<Setter Property="Fill" Value="Gray"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
<Style TargetType="Ellipse" x:Key="TeamColors2">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=ColorNo2}" Value="1">
<Setter Property="Fill" Value="Red"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding Path=ColorNo2}" Value="2">
<Setter Property="Fill" Value="Yellow"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding Path=ColorNo2}" Value="3">
<Setter Property="Fill" Value="Lime"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding Path=ColorNo2}" Value="4">
<Setter Property="Fill" Value="Black"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding Path=ColorNo2}" Value="0">
<Setter Property="Fill" Value="Gray"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
See Question&Answers more detail:os