WPF Datagrid - 如何验证多行并标记所有无效的? [英] WPF Datagrid - How to validate multiple rows and mark all invalid ones?
问题描述
我的xaml样式代码到目前为止:
< Style TargetType ={x:Type dg:DataGridRow}>
< Style.Triggers>
< Trigger Property =Validation.HasErrorValue =true>
< Setter Property =BorderThicknessValue =10/>
< Setter Property =BorderBrushValue =Green/>
< Setter Property =BackgroundValue =#F6B39E/>
< Setter Property =ToolTipValue ={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!
如果您删除x:Key =RowStyle,那会发生什么?
$ b $原谅我,如果我是明显的,但没有看到你的其余的代码,我不能告诉。如果你正在命名一个风格,它将不会被使用,除非你明确地设置它被使用。
I have a datagrid with rows where the validation depends on his siblings. So far I'm using BindingGroups and a custom ValidationRule to validate multiple rows a the same time. But I can't figure out how to change the appereance of the invalid row entries. I return a ValidationResult and my grid gets a red border but my style gets ignored.
My xaml style code so far:
<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>
edit: maybe I should post a little more of my code at the moment I have this validation declaration:
<dg:DataGrid.RowValidationRules>
<viewModel:StreamGridValidationRules />
</dg:DataGrid.RowValidationRules>
With this code my style above gets set correctly, but only one row gets validated at a time. As I need to validate all siblings and his parent aswell, I changed my code to this:
<dg:DataGrid.BindingGroup>
<BindingGroup Name="BindingGroup">
<BindingGroup.ValidationRules>
<viewModel:StreamGridValidationRules />
</BindingGroup.ValidationRules>
</BindingGroup>
</dg:DataGrid.BindingGroup>
With this I get multiple items in the BindingGroup but my style gets ignored completly and the grid just gets the standard 1px red border.
Thanks beforehand for any tips and hints!
tS!
what happens if you remove the x:Key="RowStyle", does it work then?
forgive me if im being obvious, but not seeing the rest of your code, i cant tell. If you are naming a style it wont get used unless you are explicitly setting it to be used.
这篇关于WPF Datagrid - 如何验证多行并标记所有无效的?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!