Validation and Validation Services
Validation and Validation Services
class SampleViewModel : AbstractViewModel, IRequireValidation
{
public SampleViewModel()
{
ValidationService = new DataAnnotationValidationService<SampleViewModel>( this );
}
[Required( AllowEmptyStrings = false )]
public String Text
{
get { return this.GetPropertyValue( () => this.Text ); }
set { this.SetPropertyValue( () => this.Text, value ); }
}
}<TextBox Text="{markup:EditorBinding Path=Text}" Grid.Row="0" Margin="33,47,220,0" Height="25" VerticalAlignment="Top" />
<ListBox Grid.Row="1" Grid.IsSharedSizeScope="True" ItemsSource="{Binding Path=ValidationErrors}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition SharedSizeGroup="propertyName" Width="Auto" />
<ColumnDefinition SharedSizeGroup="errorText" Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Path=Key}" Margin="0,0,5,0" Grid.Column="0" Foreground="Red" />
<TextBlock Text="{Binding}" Grid.Column="1" Foreground="Brown" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
WPF validation support
How IRequireValidation works
Validation Services
Editor bindings
First time property validation
Custom validation
Custom rules
Advanced validation
Last updated