样式WPF DataGrid在有0个项目时显示红色边框

时间:2012-07-16 17:15:36

标签: wpf datagrid styles

我正在尝试设置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。

我需要从默认样式开始吗?如果是这样我在哪里找到它。

2 个答案:

答案 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。我希望这会有所帮助。