2 回答
TA贡献1811条经验 获得超4个赞
您需要实现ItemContainerStyle如下:
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="BorderThickness" Value="1" />
<Setter Property="BorderBrush" Value="Transparent" />
<Style.Triggers>
<DataTrigger Binding="{Binding Validation.HasErrors}" Value="True">
<Setter Property="BorderBrush" Value="Red"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ListBox.ItemContainerStyle>
这将使您能够更改ListBoxItem自身的边框,从而使整个事物随心所欲。
TA贡献1810条经验 获得超5个赞
您可以忘记 ErrorTemplate 并仅使用 DataTrigger 绑定到Validation.HasErrors:
<StackPanel>
<StackPanel.Resources>
<Style TargetType="{x:Type StackPanel}" BasedOn="{StaticResource {x:Type StackPanel}}">
<Style.Triggers>
<DataTrigger Binding="{Binding Validation.HasErrors}" Value="True"> <!-- change all text to red -->
<Setter Property="Foreground" Value="Red"/>
</DataTrigger>
</Style.Triggers>
</Style>
</StackPanel.Resources>
</StackPanel>
如果你想要一个高亮,你可以用一个 Border 包裹 StackPanel 并在一个样式中将它的颜色设置为红色。
- 2 回答
- 0 关注
- 185 浏览
添加回答
举报