2

我正在尝试设置样式以在集合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。

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

4

2 回答 2

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>
于 2012-07-16T17:58:28.607 回答
0

在 Binding 中设置 ValidateOnErrors=True 和 ValidateOnExceptions=True 。我希望这将有所帮助。

于 2012-07-16T17:21:22.777 回答