如果ViewModel属性=“无效”,我希望我的TextBox具有红色背景。我需要改变什么才能起作用?
此版本告诉我背景没有合格的类型名称。
<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>
当我添加“TextBox”时。它告诉我必须有一个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>
答案 0 :(得分:11)
请允许我回答这个问题,我忘了把它全部包装成一个风格,然后它很好用:
<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>
或者这个:
<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>