【发布时间】:2013-08-23 01:55:59
【问题描述】:
(Visual Studio 2010) 我正在尝试对 WPF 数据网格中的 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>
但是当验证失败时,我的单元格样式会被完全忽略。我实际上已经习惯了这一点(但我从来没有想过为什么它被忽略了),所以我尝试使用TemplateColumn 和Checkbox,在那里我可以更改CheckBox边框背景,但还没有弄清楚如何更改整个单元格本身的背景颜色。
【问题讨论】:
标签: wpf validation checkbox datagrid