我有一个验证日期的文本框。
如果文本框有效,我想在文本框的工具提示中显示内容。否则,我想在工具提示中显示验证错误。
我在Text上设置了标准工具提示,并添加了几个触发器:
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="Validation.HasError"
Value="False" />
<Condition Property="Text"
Value="" />
</MultiTrigger.Conditions>
<MultiTrigger.Setters>
<Setter Property="ToolTipService.ToolTip"
TargetName="DataTextBox"
Value="{x:Null}"/>
</MultiTrigger.Setters>
</MultiTrigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="Validation.HasError"
Value="True" />
</MultiTrigger.Conditions>
<MultiTrigger.Setters>
<Setter Property="ToolTipService.ToolTip"
TargetName="DataTextBox"
Value="{Binding (Validation.Errors)[0].ErrorContent}"/>
</MultiTrigger.Setters>
</MultiTrigger>
我需要类似于否定条件的内容来检查文本框中是否添加了文本。
感谢您的帮助。
答案 0 :(得分:4)
默认情况下,只需将工具提示绑定到TextBox's Text
,如果项目有错误,请使用Trigger
设置验证错误。
<Style x:Key="MyTextBoxStyle" TargetType="{x:Type TextBox}">
<Setter Property="ToolTip"
Value="{Binding RelativeSource={RelativeSource Self}, Path=Text}" />
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="True">
<Setter Property="ToolTip" Value="{Binding
Path=(Validation.Errors)[0].ErrorContent,
RelativeSource={RelativeSource Self}}" />
</Trigger>
</Style.Triggers>
</Style>
此外,除非您评估多个条件,否则不应使用MultiDataTrigger