从代码运行DataGrid行验证

时间:2014-01-15 17:13:17

标签: c# wpf

是否可以从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>

0 个答案:

没有答案