|
|
@ -0,0 +1,64 @@ |
|
|
|
|
|
|
|
<Window x:Class="BindingValidationRuleSample.MainWindow" |
|
|
|
|
|
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
|
|
|
|
|
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
|
|
|
|
|
|
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" |
|
|
|
|
|
|
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" |
|
|
|
|
|
|
|
xmlns:local="clr-namespace:BindingValidationRuleSample" |
|
|
|
|
|
|
|
xmlns:model="clr-namespace:BindingValidationRuleSample.Model" |
|
|
|
|
|
|
|
xmlns:validation="clr-namespace:BindingValidationRuleSample.Validation" |
|
|
|
|
|
|
|
mc:Ignorable="d" |
|
|
|
|
|
|
|
Title="MainWindow" Height="200" Width="300"> |
|
|
|
|
|
|
|
<Window.DataContext> |
|
|
|
|
|
|
|
<model:Student/> |
|
|
|
|
|
|
|
</Window.DataContext> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<Grid> |
|
|
|
|
|
|
|
<Grid.ColumnDefinitions> |
|
|
|
|
|
|
|
<ColumnDefinition Width="Auto"/> |
|
|
|
|
|
|
|
<ColumnDefinition Width="*"/> |
|
|
|
|
|
|
|
</Grid.ColumnDefinitions> |
|
|
|
|
|
|
|
<Grid.RowDefinitions> |
|
|
|
|
|
|
|
<RowDefinition Height="Auto"/> |
|
|
|
|
|
|
|
<RowDefinition Height="Auto"/> |
|
|
|
|
|
|
|
<RowDefinition Height="Auto"/> |
|
|
|
|
|
|
|
<RowDefinition Height="*"/> |
|
|
|
|
|
|
|
</Grid.RowDefinitions> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<TextBlock Grid.Column="0" Grid.Row="0" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="10,2" |
|
|
|
|
|
|
|
Text="Name: "/> |
|
|
|
|
|
|
|
<TextBlock Grid.Column="0" Grid.Row="1" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="10,2" |
|
|
|
|
|
|
|
Text="Age: "/> |
|
|
|
|
|
|
|
<TextBlock Grid.Column="0" Grid.Row="2" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="10,2" |
|
|
|
|
|
|
|
Text="Phone Number: "/> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<TextBox Grid.Column="1" Grid.Row="0" Margin="5" |
|
|
|
|
|
|
|
Text="{Binding Name, Mode=TwoWay}"/> |
|
|
|
|
|
|
|
<TextBox x:Name="tbxAge" Grid.Column="1" Grid.Row="1" Margin="5" |
|
|
|
|
|
|
|
ToolTip="{Binding RelativeSource={RelativeSource Self}, Path=(Validation.Errors)[0].ErrorContent}"> |
|
|
|
|
|
|
|
<TextBox.Text> |
|
|
|
|
|
|
|
<Binding Path="Age" |
|
|
|
|
|
|
|
Mode="TwoWay" |
|
|
|
|
|
|
|
UpdateSourceTrigger="PropertyChanged"> |
|
|
|
|
|
|
|
<Binding.ValidationRules> |
|
|
|
|
|
|
|
<validation:AgeRangeException/> |
|
|
|
|
|
|
|
</Binding.ValidationRules> |
|
|
|
|
|
|
|
</Binding> |
|
|
|
|
|
|
|
</TextBox.Text> |
|
|
|
|
|
|
|
</TextBox> |
|
|
|
|
|
|
|
<TextBox Grid.Column="1" Grid.Row="2" Margin="5" Foreground="Blue" |
|
|
|
|
|
|
|
Text="{Binding PhoneNumber, Mode=TwoWay}"/> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<Grid Grid.Column="0" Grid.Row="4" Grid.ColumnSpan="2" Height="30"> |
|
|
|
|
|
|
|
<Grid.ColumnDefinitions> |
|
|
|
|
|
|
|
<ColumnDefinition/> |
|
|
|
|
|
|
|
<ColumnDefinition/> |
|
|
|
|
|
|
|
<ColumnDefinition/> |
|
|
|
|
|
|
|
<ColumnDefinition/> |
|
|
|
|
|
|
|
</Grid.ColumnDefinitions> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<Button Grid.Column="2" Content="OK" Margin="5 3" |
|
|
|
|
|
|
|
Foreground="{Binding ElementName=tbxAge, Path=Foreground}"/> |
|
|
|
|
|
|
|
<Button Grid.Column="3" Content="Cancel" Margin="5 3"/> |
|
|
|
|
|
|
|
</Grid> |
|
|
|
|
|
|
|
</Grid> |
|
|
|
|
|
|
|
</Window> |