(VS 2010)我的WPF数据网格中有一个DataGridComboBobxColum
。我正在尝试使用在UpdatedValue
上评估的验证规则:
<DataGridComboBoxColumn Header="Model" x:Name="ModelCBColumn"
ElementStyle="{StaticResource cbErrorStyle}" >
<DataGridComboBoxColumn.SelectedItemBinding>
<Binding Path="Model" Mode="TwoWay" ValidatesOnDataErrors="True" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<local:ModelValidationRule ValidationStep="UpdatedValue" />
</Binding.ValidationRules>
</Binding>
</DataGridComboBoxColumn.SelectedItemBinding>
然后ElementStyle
应该更改单元格背景并显示验证错误的工具提示:
<Style x:Key="cbErrorStyle" TargetType="{x:Type ComboBox}">
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="true">
<Setter Property="ToolTip"
Value="{Binding RelativeSource={RelativeSource Self},
Path=(Validation.Errors)[0].ErrorContent}"/>
<Setter Property="Background" Value="Yellow"/>
</Trigger>
</Style.Triggers>
</Style>
但我的ElementStyle
永远不会被应用。相反,对于验证错误,单元格周围有默认的红色边框,行标题中有!
图标。没有工具提示或黄色背景。更糟糕的是,当细胞被校正时,红色边框将消失,但!
仍然存在。没有行验证规则。我为TextBoxColumns
做了一个非常类似的方法没有问题,所以不知道这里有什么问题。