更新时间:2022-09-23 20:06:59
ylbtech-SilverLight-DataBindings_BindingADataObjects_Validation:一、银光验证。ValidatesOnExpression和NotifyOnValidationError |
1.A,数据源返回顶部 |
4,
1.B, ValidatesOnExpression |
<Grid x:Name="gridDetailPerson" Background="White"> <Grid.RowDefinitions> <RowDefinition Height="Auto"></RowDefinition> <RowDefinition Height="Auto"></RowDefinition> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="100"></ColumnDefinition> <ColumnDefinition Width="*"></ColumnDefinition> <ColumnDefinition Width="100"></ColumnDefinition> </Grid.ColumnDefinitions> <TextBlock Grid.Row="0" Grid.Column="0" Margin="7" Text="姓名"></TextBlock> <TextBox Grid.Row="0" Grid.Column="1" Margin="5" Text="{Binding Username}"></TextBox> <TextBlock Grid.Row="1" Grid.Column="0" Margin="7" Text="年龄"></TextBlock> <TextBox Grid.Row="1" Grid.Column="1" Margin="5" Text="{Binding Age,Mode=TwoWay,ValidatesOnExceptions=True}"></TextBox> </Grid>
2.3/3,
2B, Person.cs
int _age; //范围 /// <summary> /// 年龄 /// </summary> public int Age { get { return _age; } set { if (value < 0) throw new ArgumentException("不能小于0"); _age = value; } }
3,
1.C, NotifyOnValidationError返回顶部 |
<Grid x:Name="gridDetailPerson" Background="White" BindingValidationError="gridDetailPerson_BindingValidationError"> <Grid.RowDefinitions> <RowDefinition Height="Auto"></RowDefinition> <RowDefinition Height="Auto"></RowDefinition> <RowDefinition Height="Auto"></RowDefinition> <RowDefinition Height="Auto"></RowDefinition> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="100"></ColumnDefinition> <ColumnDefinition Width="*"></ColumnDefinition> <ColumnDefinition Width="100"></ColumnDefinition> </Grid.ColumnDefinitions> <TextBlock Grid.Row="0" Grid.Column="0" Margin="7" Text="姓名"></TextBlock> <TextBox Grid.Row="0" Grid.Column="1" Margin="5" Text="{Binding Username}"></TextBox> <TextBlock Grid.Row="1" Grid.Column="0" Margin="7" Text="年龄"></TextBlock> <TextBox Grid.Row="1" Grid.Column="1" Margin="5" Name="txtAge" Text="{Binding Age,Mode=TwoWay,ValidatesOnExceptions=True, NotifyOnValidationError=True}"></TextBox> <TextBlock Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="2" Margin="7" Name="txtBlkTip" Text="" Foreground="Red"></TextBlock> </Grid>
2.3/3,
using System.Windows.Controls; using SL3ValidationYlbtechApp.Access; namespace SL3ValidationYlbtechApp.DataBinding.BindingADataObjects.Validation { public partial class NotifyOnValidationError : UserControl { public NotifyOnValidationError() { InitializeComponent(); gridDetailPerson.DataContext = Person.GetModel(); } private void gridDetailPerson_BindingValidationError(object sender, ValidationErrorEventArgs e) { //显示错误 txtBlkTip.Text = e.Error.Exception.Message; txtBlkTip.Text += "\n存储值:" + ((Person)gridDetailPerson.DataContext).Age; //建议用户再试一次 txtAge.Focus(); } } }
3,
1.D,返回顶部 |