如果validationresult为true,我尝试以下方式扩展样式并添加工具提示消息。但它显示错误“属性样式设置不止一次”。如何扩展此案例的样式。任何帮助将不胜感激。感谢。
<TextBox Width="500" Style="{StaticResource HasInvalidValue}">
<TextBox.Text>
<Binding Path="Text" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<Validator:PathFormatValidationRule/>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
<TextBox.Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource HasInvalidValue}">
<Style>
<Setter Property="ToolTip" Value="Enter Text."/>
</Style>
</TextBox.Style>
</TextBox>
风格定义为:
<Style x:Key="HasInvalidValue" TargetType="{x:Type TextBox}">
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="true">
<Setter Property="Background" Value="White"/>
<Setter Property="ToolTip"
Value="{Binding RelativeSource={x:Static RelativeSource.Self},
Path=(Validation.Errors)[0].ErrorContent}"/>
</Trigger>
</Style.Triggers>
</Style>
答案 0 :(得分:2)
首先在
中设置<TextBox Style="{StaticResource HasInvalidValue}" ...
...
</TextBox>
然后
<TextBox.Style ...
</TextBox.Style>
从文本框元素中删除样式属性。