In my user control I want to have label displaying Text from resource depending on viewmodel property Location value and with different format. I implemented it by defining DataTrigger for each Location value
<Style x:Key="LocationValueHelper" TargetType="{x:Type Label}">
    <Style.Triggers>
        <DataTrigger Binding="{Binding Location}" Value="HomeViewModel">
            <Setter Property="Content" Value="" />
            <Setter Property="ContentStringFormat" Value="{}{0}???"/>
        </DataTrigger>
        <DataTrigger Binding="{Binding Location}" Value="FirstViewModel">
            <Setter Property="ContentStringFormat" Value="{}{0}+++"/>
            <Setter Property="Content" Value="{localization:LanguageResource ResourceKey=First}" />
        </DataTrigger>
        <DataTrigger Binding="{Binding Location}" Value="SecondViewModel">
            <Setter Property="ContentStringFormat" Value="{}{0}---"/>
            <Setter Property="Content" Value="{localization:LanguageResource ResourceKey=Second}" />
        </DataTrigger>
        <DataTrigger Binding="{Binding Location}" Value="ThirdViewModel">
            <Setter Property="ContentStringFormat" Value="{}{0}***"/>
            <Setter Property="Content" Value="{localization:LanguageResource ResourceKey=Third}" />
        </DataTrigger>
    </Style.Triggers>
</Style>
<Label Foreground="White" HorizontalAlignment="Center" FontSize="40" Style="{StaticResource LocationValueHelper}" />
The problem is that format never changes from the first one (???) - HomeViewModel selected first - although text changing works.
I have
Home???
First???
Second???
Third???
instead of
Home???
First+++
Second---
Third***
 
     
    