How can I make this DataTrigger work?

I want my TextBox to have a red background if the ViewModel = " invalid " property . What do I need to change for this to work?

This version tells me that Background does not have a qualification type name .

<TextBox
    Width="200"
    Text="{Binding FieldEmail, UpdateSourceTrigger=PropertyChanged}">
    <TextBox.Triggers>
        <DataTrigger Binding="{Binding FieldEmailValidationStatus}" Value="invalid">
            <Setter Property="TextBox.Background" Value="Tomato"/>
        </DataTrigger>
    </TextBox.Triggers>
</TextBox>

When I add a "TextBox". this tells me that I should have an EventTrigger :

<TextBox
    Width="200"
    Text="{Binding FieldEmail, UpdateSourceTrigger=PropertyChanged}">
    <TextBox.Triggers>
        <DataTrigger Binding="{Binding FieldEmailValidationStatus}" Value="invalid">
            <Setter Property="Background" Value="Tomato"/>
        </DataTrigger>
    </TextBox.Triggers>
</TextBox>
+5
source share
1 answer

Let me answer this question, I forgot to wrap everything in style, then it works beautifully:

<TextBox
    Width="200"
    Text="{Binding FieldEmail, UpdateSourceTrigger=PropertyChanged}">
    <TextBox.Style>
        <Style>
            <Style.Triggers>
                <DataTrigger Binding="{Binding FieldEmailValidationStatus}" Value="invalid">
                    <Setter Property="TextBox.Background" Value="Tomato"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </TextBox.Style>
</TextBox>

or that:

<Style x:Key="FieldEmailStyle" TargetType="TextBox">
    <Style.Triggers>
        <DataTrigger Binding="{Binding FieldEmailValidationStatus}" Value="invalid">
            <Setter Property="TextBox.Background" Value="Yellow"/>
        </DataTrigger>
        <DataTrigger Binding="{Binding FieldEmailValidationStatus}" Value="valid">
            <Setter Property="TextBox.Background" Value="LightGreen"/>
        </DataTrigger>
    </Style.Triggers>
</Style>

    <TextBox
        Width="200"
        Style="{StaticResource FieldEmailStyle}"
        Text="{Binding FieldEmail, UpdateSourceTrigger=PropertyChanged}">
    </TextBox>
+10
source

All Articles