Wpf 如何基于if Validation.HasError=False运行DataTrigger?

Wpf 如何基于if Validation.HasError=False运行DataTrigger?,wpf,datagrid,datatrigger,Wpf,Datagrid,Datatrigger,在我的DataGridTextColumn上,我想运行DataTrigger,但只有在Validation.HasError为False 这就是我目前的情况: <DataGridTextColumn Header="Volts" Binding="{Binding DcVolts, Converter={StaticResource StringToDecimalConverter}}" Width="Auto">

在我的
DataGridTextColumn
上,我想运行
DataTrigger
,但只有在
Validation.HasError
False

这就是我目前的情况:

<DataGridTextColumn Header="Volts" 
                Binding="{Binding DcVolts, Converter={StaticResource StringToDecimalConverter}}" 
                Width="Auto">
<DataGridTextColumn.ElementStyle>
    <Style TargetType="{x:Type TextBlock}" 
           BasedOn="{StaticResource DataGridTextColumnElementErrorStyle}">
        <Style.Triggers>
            <MultiDataTrigger>
                <MultiDataTrigger.Conditions>
                    <Condition Binding="{Binding RelativeSource={RelativeSource Self}, Path=Validation.HasError}" 
                               Value="False" />
                    <Condition Value="False">
                        <Condition.Binding>
                            <MultiBinding Converter="{StaticResource EqualityConverter}">
                                <Binding Path="DcVolts" />
                                <Binding Path="DcSpecVolts" />
                            </MultiBinding>
                        </Condition.Binding>
                    </Condition>
                </MultiDataTrigger.Conditions>
                <MultiDataTrigger.Setters>
                    <Setter Property="Background" Value="Orange" />
                </MultiDataTrigger.Setters>
            </MultiDataTrigger>
        </Style.Triggers>
    </Style>
</DataGridTextColumn.ElementStyle>

但问题是,在
Validation.HasError上,
工具提示中提供的消息(根据我创建的规则)重复了


非常感谢您的建议。

您应该在绑定路径周围添加括号,因为
验证。HasError
是一个附加属性:

<Condition Binding="{Binding RelativeSource={RelativeSource Self}, Path=(Validation.HasError)}" 
           Value="True" />


啊,不错!这至少让触发器按我所希望的那样工作,现在只是重复错误会议的情况。我有一条关于DCV的规则,它不能为空,因此,当它为空时,单元格变为粉红色,工具提示提供消息“伏特不能为空”,但由于某种原因,当我有此触发器时,它会复制消息。@Pete:如果您有其他问题,请问一个新问题,请确保包含一个。我在最初的问题中确实包含此问题,在这里,我用第二段代码做了我想做的事情,但是消息在哪里被复制了。我可以提出另一个问题,但内容基本相同。事后看来,也许我应该在标题中加入“不重复验证错误消息”。我的错。@Pete:编辑你的问题,将你的问题包括在最低限度的回购中。我只是在这样做的过程中,但我想我需要把所有的代码发布到我现在的位置,我的NotifyDataErrorInfo类的模型和规则等。我想我可能只是接受你的答案,因为它解决了我最初的问题,并与我自己的其他人战斗。我不能指望有人真的花那么多时间来解决这个问题。
<Condition Binding="{Binding RelativeSource={RelativeSource Self}, Path=(Validation.HasError)}" 
           Value="True" />