WPF界面控件默认验证报错时,控制表单提交问题


WPF的控件很多都有自带的默认验证,但是不会反馈错误到后台,这里记录一下其中一个比较简单的方法去使用它的默认验证报错来处理一些问题

比如一个输入框和一个按钮,当输入框默认验证报错试,不能点击提交按钮

<TextBox x:Name="txtQty" Grid.Row="5" Grid.Column="1" Text="{Binding EditEntity.Qty,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged,StringFormat=0.00}" Height="30" Width="260" HorizontalAlignment="Left" TextWrapping="Wrap" >TextBox>

可以将按钮的IsEnable属性绑定为输入框的默认验证是否报错的属性

<Button Content="提 交"  Grid.Column="0" x:Name="submit"
                Margin="0 0 30 0"  Width="80" VerticalAlignment="Center" IsEnabled="{Binding ElementName=txtQty, Path=(Validation.HasError),Converter={StaticResource OppositeBoolConverter}}"
                    Visibility="{Binding IsSubmit,Converter={StaticResource BoolToVisibleConverter}}"
                Command="{Binding CmdSaveCopyData}"  
                CommandParameter="{Binding ElementName = WndEdit }"  />

注意要进行一下绑定相反值,可以通过转换器实现

这个时候就能做到当输入框验证报错红框时,按钮无法点击,同时,其它的一些思路也可以按这个实现,比如按钮的Visibility属性等