Wpf 为验证错误更改DataGrid复选框列的背景
(Visual Studio 2010)我正在尝试对WPF数据网格中的Wpf 为验证错误更改DataGrid复选框列的背景,wpf,validation,checkbox,datagrid,Wpf,Validation,Checkbox,Datagrid,(Visual Studio 2010)我正在尝试对WPF数据网格中的CheckBoxColumn执行验证。我已经设置了验证规则,如果失败,我希望单元格背景变为红色并显示工具提示: <DataGridCheckBoxColumn Header="Checked" > <DataGridCheckBoxColumn.Binding> <Binding Path="CheckProperty" M
CheckBoxColumn
执行验证。我已经设置了验证规则,如果失败,我希望单元格背景变为红色并显示工具提示:
<DataGridCheckBoxColumn Header="Checked" >
<DataGridCheckBoxColumn.Binding>
<Binding Path="CheckProperty" Mode="TwoWay" ValidatesOnDataErrors="True" UpdateSourceTrigger="PropertyChanged" >
<Binding.ValidationRules>
<local:CheckValidationRule ValidationStep="UpdatedValue" />
</Binding.ValidationRules>
</Binding>
</DataGridCheckBoxColumn.Binding>
<DataGridCheckBoxColumn.CellStyle>
<Style TargetType="DataGridCell">
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="True">
<Setter Property="Background" Value="Red"/>
<Setter Property="ToolTipService.ToolTip"
Value="{Binding RelativeSource={RelativeSource Self},
Path=(Validation.Errors).CurrentItem.ErrorContent}"/>
</Trigger>
</Style.Triggers>
</Style>
</DataGridCheckBoxColumn.CellStyle>
</DataGridCheckBoxColumn>
但当验证失败时,我的单元格样式将被完全忽略。我实际上已经习惯了这一点(但我从未想过为什么会忽略它),因此我尝试使用带有
复选框的模板列,在那里我可以更改复选框的边框背景,但是仍然没有弄清楚如何更改整个单元格本身的背景色。尝试使用DataTrigger而不是Trigger属性:
<DataGridCheckBoxColumn Header="Checked" Binding="{Binding CheckProperty}">
<DataGridCheckBoxColumn.CellStyle>
<Style TargetType="{x:Type DataGridCell}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=CheckProperty}" Value="True">
<Setter Property="Background" Value="White"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding Path=CheckProperty}" Value="False">
<Setter Property="Background" Value="Red"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGridCheckBoxColumn.CellStyle>
</DataGridCheckBoxColumn>