我正在尝试设置DataGrid
的样式,以便在其ItemsSource
集合中没有项目时显示红色错误边框。我已经编写了所有代码并为触发器工作。
以下是我的尝试:
<Style x:Key="WarningDataGrid" TargetType="DataGrid" BasedOn="{StaticResource {x:Type DataGrid}}">
<Style.Triggers>
<Trigger Property="ocean:DataGridBehavior.HasWarning" Value="true">
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<Border BorderThickness="1" BorderBrush="Red">
<AdornedElementPlaceholder />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Self}, Path=(ocean:CheckBoxBehavior.Warning)}" />
</Trigger>
</Style.Triggers>
</Style>
但由于我没有使用验证框架,所有发生的事情都是红色边框取代了DataGrid。
我需要从默认样式开始吗?如果是这样我在哪里找到它。
答案 0 :(得分:3)
您正在替换整个模板。只需设置BorderBrush
:
<Style x:Key="WarningDataGrid" TargetType="DataGrid" BasedOn="{StaticResource {x:Type DataGrid}}">
<Style.Triggers>
<Trigger Property="ocean:DataGridBehavior.HasWarning" Value="true">
<Setter Property="BorderBrush" Value="AliceBlue"/>
<Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Self}, Path=(ocean:CheckBoxBehavior.Warning)}" />
</Trigger>
</Style.Triggers>
</Style>
答案 1 :(得分:0)
在绑定中设置ValidateOnErrors = True和ValidateOnExceptions = True。我希望这会有所帮助。