I'm on a project Csharp MVVM and I would like to know if it was possible to use Data.Annotations directment in models , not ViewModels . If so how ?
I thought like that, My Model (class Ticket):
[Dapper.Key]
[Required(ErrorMessage = "This field is requierd")]
[Range(1, int.MaxValue, ErrorMessage ="Only Int")]
public int? Tic_Id { get; set; }
[Required(ErrorMessage = "This field is requierd")]
public DateTime Tic_Date { get; set; }
My ViewModel (use IDataErrorInfo):
[RaisePropertyChanged]
public virtual Ticket FicheItem {get;set;}
And my View
<!-- ID -->
<TextBlock Grid.Row="1" Text="ID :" Style="{StaticResource FicheLabelStyle}"/>
<TextBox Name="ID" Grid.Row="1" Grid.Column="1"
IsEnabled="True"
Text="{Binding FicheItem.Tic_Id, UpdateSourceTrigger=PropertyChanged,ValidatesOnDataErrors=True,NotifyOnValidationError=True,Mode=TwoWay}"
Style="{StaticResource FicheTextboxStyleNumber}"/>
<TextBlock Grid.Column="1" Grid.Row="2" Name="IDError" Text="{Binding (Validation.Errors)[0].ErrorContent, ElementName=ID}" Foreground="Red" Margin="19,3,0,0"
Visibility="{Binding ElementName=IDError, Path=Text,Converter={StaticResource FicheErrorVisibilityConverter},Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
<!-- Date -->
<TextBlock Grid.Row="3" Text="Date :" Style="{StaticResource FicheLabelStyle}"/>
<TextBox Grid.Row="3" Grid.Column="1" Name="Date"
Text="{Binding FicheItem.Tic_Date, ValidatesOnDataErrors=True, NotifyOnValidationError=True,UpdateSourceTrigger=PropertyChanged}"
Style="{StaticResource FicheTextboxStyleText}" />
<TextBlock Grid.Column="1" Grid.Row="4" Name="DateError" Text="{Binding (Validation.Errors)[0].ErrorContent, ElementName=Date}" Foreground="Red" Margin="19,3,0,0"
Visibility="{Binding ElementName=DateError, Path=Text,Converter={StaticResource FicheErrorVisibilityConverter},Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
But it doesn't work...