我有一个包含行的数据网格,验证取决于他的兄弟姐妹。到目前为止,我正在使用BindingGroups和自定义ValidationRule来同时验证多行。但我无法弄清楚如何更改无效行条目的外观。我返回一个ValidationResult,我的网格得到一个红色边框,但我的样式被忽略了。
到目前为止我的xaml样式代码:
<Style TargetType="{x:Type dg:DataGridRow}">
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="true">
<Setter Property="BorderThickness" Value="10"/>
<Setter Property="BorderBrush" Value="Green"/>
<Setter Property="Background" Value="#F6B39E"/>
<Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Self}, Path=(Validation.Errors)[0].ErrorContent}"/>
</Trigger>
</Style.Triggers>
</Style>
编辑:也许我应该发布一些我的代码 目前我有这个验证声明:
<dg:DataGrid.RowValidationRules>
<viewModel:StreamGridValidationRules />
</dg:DataGrid.RowValidationRules>
使用此代码,我上面的样式设置正确,但一次只能验证一行。因为我需要验证所有兄弟姐妹和他的父母,我将我的代码更改为:
<dg:DataGrid.BindingGroup>
<BindingGroup Name="BindingGroup">
<BindingGroup.ValidationRules>
<viewModel:StreamGridValidationRules />
</BindingGroup.ValidationRules>
</BindingGroup>
</dg:DataGrid.BindingGroup>
有了这个,我在BindingGroup中得到了多个项目,但我的样式被完全忽略,网格只获得标准的1px红色边框。
预先感谢任何提示和提示!
TS!
答案 0 :(得分:0)
如果删除x:Key =“RowStyle”会发生什么情况呢?
原谅我,如果我很明显,但没有看到你的其余代码,我不能说。如果您命名一个样式,它将不会被使用,除非您明确设置它使用它。