Как я могу использовать свое правило проверки строк при каждом изменении ячейки?У меня есть 4 столбца: X, Y, Z, W. Каждая ячейка имеет свое собственное правило проверки, и мне нужно проверить, что сумма X + Z не превышает предела, то же самое для суммы Y + W. Iхотите проверять его каждый раз, когда пользователь изменяет значение ячейки.
<DataGrid x:Name="targetsDataGrid" ItemsSource="{x:Static local:Position.EmptyPositions}" AutoGenerateColumns="False" ColumnWidth="*" Height="210" HorizontalContentAlignment="Center" HorizontalAlignment="Stretch" VerticalAlignment="Top" CanUserResizeColumns="False" CanUserSortColumns="False" HeadersVisibility="All" CanUserResizeRows="False" Margin="0,32,0,0" CellEditEnding="TargetsDataGrid_CellEditEnding">
<DataGrid.Background>
<SolidColorBrush Color="White" Opacity="0.35"/>
</DataGrid.Background>
<DataGrid.RowValidationRules>
<local:RowValidationRule/>
</DataGrid.RowValidationRules>
<DataGrid.RowValidationErrorTemplate>
<ControlTemplate>
<Grid Margin="0,-2,0,-2" ToolTip="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGridRow}}, Path=(Validation.Errors)[0].ErrorContent}">
<Ellipse StrokeThickness="0" Fill="Red" Width="{TemplateBinding FontSize}" Height="{TemplateBinding FontSize}"/>
<TextBlock Text="!" FontSize="{TemplateBinding FontSize}" FontWeight="Bold" Foreground="White" HorizontalAlignment="Center"/>
</Grid>
</ControlTemplate>
</DataGrid.RowValidationErrorTemplate>
<DataGrid.Resources>
<Style x:Key="errorStyle" TargetType="{x:Type TextBox}">
<Setter Property="Padding" Value="-2"/>
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="True">
<Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Self}, Path=(Validation.Errors)[0].ErrorContent}"/>
</Trigger>
</Style.Triggers>
</Style>
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridTextColumn Header="X" EditingElementStyle="{StaticResource errorStyle}">
<DataGridTextColumn.Binding>
<Binding Path="X">
<Binding.ValidationRules>
<local:PositionValidationRuleX/>
</Binding.ValidationRules>
</Binding>
</DataGridTextColumn.Binding>
</DataGridTextColumn>
<DataGridTextColumn Header="Y" EditingElementStyle="{StaticResource errorStyle}">
<DataGridTextColumn.Binding>
<Binding Path="Y">
<Binding.ValidationRules>
<local:PositionValidationRuleY />
</Binding.ValidationRules>
</Binding>
</DataGridTextColumn.Binding>
</DataGridTextColumn>
<DataGridTextColumn Header="Z" EditingElementStyle="{StaticResource errorStyle}" >
<DataGridTextColumn.Binding>
<Binding Path="Z">
<Binding.ValidationRules>
<local:PositionValidationRuleZ />
</Binding.ValidationRules>
</Binding>
</DataGridTextColumn.Binding>
</DataGridTextColumn>
<DataGridTextColumn Header="W" EditingElementStyle="{StaticResource errorStyle}" >
<DataGridTextColumn.Binding>
<Binding Path="W">
<Binding.ValidationRules>
<local:PositionValidationRuleW />
</Binding.ValidationRules>
</Binding>
</DataGridTextColumn.Binding>
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>