我有一個datagrid,其中的驗證取決於他的兄弟姐妹。到目前爲止,我使用BindingGroups和一個自定義的ValidationRule來同時驗證多行。但我無法弄清楚如何改變無效行條目的含義。我返回一個ValidationResult,並且我的網格獲得一個紅色邊框,但我的樣式被忽略。WPF Datagrid - 如何驗證多行並標記所有無效行?
我的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!
您能否詳細說明您如何設置BindingGroup以及您在自定義ValidationRule中使用的機制來一次驗證多行?創建BindingGroup的XAML /代碼以及自定義ValidationRule的基本部分會很好。 – 2009-11-14 18:47:07