Witam,
próbuję zrobić walidację pól formularza korzystając z implementacji IDataErrorInfo przez ViewModel, lecz mam pewien problem. Od razu zaznaczę, że w oknie, gdzie do textboxa binduję property typu string to wszystko działa. Problem mam, gdyż w ViewModelu mam:
private ClientDTO client;
public ClientDTO Client
{
get { return client; }
set { SetProperty(ref client, value); }
}
I do Textboxów binduję to jak poniżej. Podam już kod gotowy, z elementami do walidacji.
<TextBox HorizontalAlignment="Left" Height="23" Margin="465,73,0,0" TextWrapping="Wrap" Text="{Binding Path=Client.Email, ValidatesOnDataErrors=True,
UpdateSourceTrigger=PropertyChanged, NotifyOnValidationError=True}" VerticalAlignment="Top" Width="185"/>
Jak widac bindowane jest Client.Email.
Dodatkowo mam taki kod w ViewModelu:
public string this[string columnName]
{
get
{
if (columnName == "Email" && this.Client.Email.IsValidEmailAddress())
{
return "Niepoprawny format adresu email";
}
return null;
}
}
public string Error { get; }
I generalnie, dla pola typu string działa, tutaj nie chce. CO do ifa, to próbowałem porównywać columnName do Client.Email, do Client, a także używać Contains i niestety brak reakcji. Prosze o pomoc.