是否可以从Code运行DataGrid行验证?如果是这样的话?谢谢你的时间。
编辑:
这是一个WPF C#项目。我有一个datagrid,它附加了一行验证,如下所示。我想知道我是否可以从我的Code Behind运行行验证而不是依赖数据网格来启动它。
<DataGrid Name="DataGridViolations" RowHeaderWidth="20" DockPanel.Dock="Bottom" AutoGenerateColumns="False" ItemsSource="{Binding Source={StaticResource ViolationListViewSource}}" TabIndex="0">
<DataGrid.Columns>
<DataGridComboBoxColumn Header="IDWR Program" Width="125" ItemsSource="{Binding Source={StaticResource EnforcementIDWRPProgramViewSource}}" DisplayMemberPath="Program" SelectedValuePath="ID" SelectedValueBinding="{Binding IDWRProgram}"/>
<DataGridTextColumn Header="Program Number" Binding="{Binding IDWRProgramNumber}" Width="125">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Program Number"/>
<Image Source="Images/help.ico" Width="16" Height="16" ToolTipService.ShowDuration="30000">
<Image.ToolTip >
<StackPanel>
<TextBlock Text="For Wells enter the Well ID in this format: 269742"/>
<TextBlock Text="For Water Rights enter the water right number in this format: 37-1122"/>
<TextBlock Text="For UIC enter the UIC Number in this format: 25-W-005-001"/>
<TextBlock Text="For Stream Channel use the Stream Channel Number in this format: S21-21142"/>
<TextBlock Text="For Dam Safety use the Dam Safety Number in this format: 55-1254"/>
</StackPanel>
</Image.ToolTip>
</Image>
</StackPanel>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
</DataGridTextColumn>
<DataGridComboBoxColumn Header="Violation Type" Width="225" ItemsSource="{Binding Source={StaticResource ViolationTypeViewSource}}" DisplayMemberPath="ViolationType" SelectedValuePath="ID" SelectedValueBinding="{Binding ViolationType}"/>
<DataGridTemplateColumn Header="Date of Violation">
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<DatePicker SelectedDate="{Binding DateOfViolation}"/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding DateOfViolation,StringFormat=MM/dd/yyyy}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="Expanded Acres" Binding="{Binding Acres, TargetNullValue=''}"/>
<DataGridTextColumn Header="Proposed Penalty" Width="SizeToHeader" Binding="{Binding ProposedPenalty, StringFormat=C2, TargetNullValue=''}"/>
<DataGridTemplateColumn Header="View Program Docs">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Name="ButtonProgramViewDoc" Click="ButtonProgramViewDoc_Click" Content="View Program Docs">
<Button.Style>
<Style TargetType="{x:Type Button}">
<Setter Property="IsEnabled" Value="False"/>
<Style.Triggers>
<DataTrigger Binding="{Binding IsIDWRProgramSelected}" Value="true">
<Setter Property="IsEnabled" Value="True"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
<DataGrid.RowValidationRules>
<Validators:ViolationRowValidator ValidatesOnTargetUpdated="True" ValidationStep="UpdatedValue"/>
</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="!" Margin="0,-2,0,0" FontSize="{TemplateBinding FontSize}" FontWeight="Bold" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</ControlTemplate>
</DataGrid.RowValidationErrorTemplate>
</DataGrid>