我有一个带有自定义ControlTemplate
的组合框,并且我想基于控件BackgroundColor
属性(这是验证时的WPF概念)来更改Validation.Errors
。
我已经决定使用Trigger
来做到这一点。我的ControlTemplate.Triggers
的定义如下:
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=(Validation.Errors), Converter={StaticResource validationRequiredError}}" Value="True">
<Setter Property="Background" TargetName="Border" Value="DeepPink"/>
</DataTrigger>
</ControlTemplate.Triggers>
我的组合框如下:
<ComboBox Margin="0" Height="30" HorizontalAlignment="Stretch" VerticalContentAlignment="Center"
IsSynchronizedWithCurrentItem="True"
DisplayMemberPath="Description"
IsEditable="False"
Style="{StaticResource ValidateableCombobox}"
ItemsSource="{Binding Lists.EstimatedDurations}"
SelectedValue="{Binding Model.EstimatedDuration, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
SelectedValuePath="Duration"/>
我确定已运行FluentValidation
中定义的验证并将其添加到Errors
集合中,但是触发器中指定的转换器永远不会运行。
我还检查了输出以验证绑定错误,但未显示任何错误。我是否需要在ControlTemplate
上添加一些特殊内容,以确保Errors
属性被正确绑定?谁能指出我正确的方向?
谢谢!