Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jun 17th, 2012  |  syntax: None  |  size: 3.58 KB  |  hits: 18  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Multiple field validator in WPF search form
  2. <TextBox Grid.Column="1" Grid.Row="3" Name="tbxPartNumber" Margin="6">
  3.         <TextBox.Text>
  4.             <Binding Path="SelectedPartNumber" UpdateSourceTrigger="PropertyChanged">
  5.                 <Binding.ValidationRules>
  6.                     <local:RequiredTextValidation/>
  7.                 </Binding.ValidationRules>
  8.             </Binding>
  9.         </TextBox.Text>
  10.     </TextBox>
  11.        
  12. <Window x:Class="Test.Dialogs.SearchDialog"
  13.         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  14.         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  15.         xmlns:sys="clr-namespace:System;assembly=mscorlib"
  16.         xmlns:diag="clr-namespace:Test.Dialogs"
  17.         xmlns:m="clr-namespace:HB.Xaml"
  18.         Title="Search" SizeToContent="WidthAndHeight" ResizeMode="NoResize"
  19.         Name="Window" DataContext="{Binding RelativeSource={RelativeSource Self}}">
  20.     <Grid>
  21.         <Grid.Resources>
  22.             <Style x:Key="BaseStyle" TargetType="{x:Type FrameworkElement}">
  23.                 <Setter Property="Margin" Value="3"/>
  24.                 <Setter Property="VerticalAlignment" Value="Center"/>
  25.             </Style>
  26.             <Style TargetType="{x:Type TextBlock}" BasedOn="{StaticResource BaseStyle}"/>
  27.             <Style TargetType="{x:Type ComboBox}" BasedOn="{StaticResource BaseStyle}"/>
  28.             <Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource BaseStyle}"/>
  29.             <Style TargetType="{x:Type Button}" BasedOn="{StaticResource BaseStyle}"/>
  30.         </Grid.Resources>
  31.         <Grid.ColumnDefinitions>
  32.             <ColumnDefinition/>
  33.             <ColumnDefinition/>
  34.         </Grid.ColumnDefinitions>
  35.         <Grid.RowDefinitions>
  36.             <RowDefinition Height="Auto"/>
  37.             <RowDefinition Height="Auto"/>
  38.             <RowDefinition Height="Auto"/>
  39.             <RowDefinition Height="Auto"/>
  40.         </Grid.RowDefinitions>
  41.         <Grid.Children>
  42.             <TextBlock Grid.Column="0" Grid.Row="0" Text="Scope:"/>
  43.             <ComboBox Grid.Column="1" Grid.Row="0" ItemsSource="{m:EnumItems {x:Type diag:SearchDialog+ScopeMode}}">
  44.                 <ComboBox.SelectedItem>
  45.                     <Binding Path="Scope">
  46.                         <Binding.ValidationRules>
  47.                             <diag:HasSelectionValidationRule />
  48.                         </Binding.ValidationRules>
  49.                     </Binding>
  50.                 </ComboBox.SelectedItem>
  51.             </ComboBox>
  52.  
  53.             <TextBlock Grid.Column="0" Grid.Row="1" Text="Direction:"/>
  54.             <ComboBox Grid.Column="1" Grid.Row="1" ItemsSource="{m:EnumItems {x:Type diag:SearchDialog+DirectionMode}}">
  55.                 <ComboBox.SelectedItem>
  56.                     <Binding Path="Direction">
  57.                         <Binding.ValidationRules>
  58.                             <diag:HasSelectionValidationRule />
  59.                         </Binding.ValidationRules>
  60.                     </Binding>
  61.                 </ComboBox.SelectedItem>
  62.             </ComboBox>
  63.  
  64.  
  65.             <TextBlock Grid.Column="0" Grid.Row="2" Text="Expression:"/>
  66.             <TextBox Name="tb" Grid.Column="1" Grid.Row="2">
  67.                 <TextBox.Text>
  68.                     <Binding Path="Expression" UpdateSourceTrigger="PropertyChanged">
  69.                         <Binding.ValidationRules>
  70.                             <diag:StringNotEmptyValidationRule />
  71.                         </Binding.ValidationRules>
  72.                     </Binding>
  73.                 </TextBox.Text>
  74.             </TextBox>
  75.  
  76.             <Button Grid.Column="1" Grid.Row="3" Content="Search" Click="Search_Click"/>
  77.         </Grid.Children>
  78.     </Grid>
  79. </Window>