textBoxNombreと呼ばれるtextBoxのようないくつかのフィールドを持つユーザーコントロールがあります
次のような検証アノテーションがあります。
[Required(ErrorMessage="Debe escribir el Nombre")]
public String Nombre { get; set; }
これは、新しいクライアント(顧客)を追加するために使用されるボタン(buttonAgregarと呼ばれる)の簡略化されたコードです。
private void buttonAgregar_Click(object sender, RoutedEventArgs e)
{
var cliente = new Cliente
{
Nombre = textBoxNombre.Text,
Apellido1 = textBoxPrimerApellido.Text,
Apellido2 = textBoxSegundoApellido.Text,
};
db.Clientes.Add(cliente);
try
{
db.SaveChanges();
}
catch (System.Data.Entity.Validation.DbEntityValidationException exc)
{
String mensaje = "";
foreach (var validationErrors in exc.EntityValidationErrors)
foreach (var validationError in validationErrors.ValidationErrors)
mensaje += validationError.ErrorMessage + "\n";
MessageBox.Show(mensaje, "Se han encontrado errores", MessageBoxButton.OK, MessageBoxImage.Error);
}
}
textBoxNombreを空のままにすると、例外がトリガーされ、メッセージボックスが表示されます。次に、textBoxNombreにテキストを入力しますが、buttonAgregarをもう一度クリックすると、例外がトリガーされ、同じエラーメッセージとともにメッセージボックスが再度表示されます。buttonAgregar_Click()メソッドは、textBoxNombreの新しい値を取得しません。
どうすればこれを解決できますか?