我正在做一个 WPF(不是 Web)应用程序。
3层
EF 代码优先
UI 层对逻辑层的引用和逻辑层对数据层的引用。
现在,我在数据层中有一个异常,我需要根据异常生成的文本显示一个 MessageBox。
但我不想在数据层中添加对 WindowsBase、PresentationCore 和 PresentationFramework 的引用。
如何从数据层向 UI 层发送文本并显示 MessageBox?
TIA
相关代码:
在 UI 层
public void guardar(UserControlCliente UCCliente)
{
admin.guardarEntidadCliente(UCCliente.textBoxNombre.Text,
UCCliente.textBoxPrimerApellido.Text,
UCCliente.textBoxSegundoApellido.Text,
"Normal",
DateTime.Parse("01/01/2012"),
DateTime.Parse("02/02/2012"),
"obs 1");
}
private void buttonAgregar_Click(object sender, RoutedEventArgs e)
{
guardar(this);
}
在逻辑层
public void guardarEntidadCliente(String nombre, String app1, String app2, String tipo,
DateTime fechaReg, DateTime fechaUltCita, String obs)
{
Cliente cliente = new Cliente();
cliente.Nombre = nombre;
cliente.Apellido1 = app1;
cliente.Apellido2 = app2;
cliente.Tipo = tipo;
cliente.FechaRegistro = fechaReg;
cliente.FechaUltimaCita = fechaUltCita;
cliente.Observaciones = obs;
ControlDatos cd = new ControlDatos();
cd.agregarCliente(cliente);
}
在数据层
public void agregarCliente(Cliente cliente)
{
db.Clientes.Add(cliente);
try
{
db.SaveChanges();
}
catch (DbEntityValidationException exc)
{
String mensaje = "";
foreach (var validationErrors in exc.EntityValidationErrors)
foreach (var validationError in validationErrors.ValidationErrors)
mensaje += validationError.ErrorMessage + "\n";
db.Entry(cliente).State = EntityState.Detached;
// MessageBox.Show(mensaje, "Se han encontrado errores", MessageBoxButton.OK, MessageBoxImage.Error);
}
}
我需要在 UI 层运行注释行。