
Obtener Clase de un objeto heredado!
Publicado por Ramiro (11 intervenciones) el 14/11/2015 23:14:21
Hola gente, estoy con un trabajito para la facu y se me presento un problemin!
El tema es que tengo 2 clases que heredan de otra (“Hombre y Mujer” que son “Personas”), en una grilla voy agregando objetos “hombre o Mujer”, después los quiero modificar o eliminar de esa misma grilla y ahí es donde tengo el problema, recuperándolos para poder modificar/eliminar.
Aca una imagen de como es el diagrama!

Con el DataBoundItem yo tenia pensado sacarlo como “Persona” y después, obtener el tipo y transformarlo, pero me tira un error que paso a mostrar a continuación!
este es un ejemplo de como seria el Eliminar!
Y aca paso como seria el .QueSoy()
Y aca paso el error que me tira cuando saco un objeto de la grilla!
Ustedes que opinan?
Desde ya gracias!

El tema es que tengo 2 clases que heredan de otra (“Hombre y Mujer” que son “Personas”), en una grilla voy agregando objetos “hombre o Mujer”, después los quiero modificar o eliminar de esa misma grilla y ahí es donde tengo el problema, recuperándolos para poder modificar/eliminar.
Aca una imagen de como es el diagrama!

Con el DataBoundItem yo tenia pensado sacarlo como “Persona” y después, obtener el tipo y transformarlo, pero me tira un error que paso a mostrar a continuación!
este es un ejemplo de como seria el Eliminar!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
private void btnEliminar_Click(object sender, EventArgs e)
{
if (dgvPacientes.CurrentRow == null)
{
MessageBox.Show("Debe seleccionar un Paciente a Modificar");
return;
}
DialogResult respuesta = MessageBox.Show("¿Confirma que desea eleiminar el medico?", "Eliminar", MessageBoxButtons.YesNo);
if (respuesta==System.Windows.Forms.DialogResult.Yes)
{
//ctrPaciente.EliminaPaciente(ctrPaciente.ObtenerElPaciente(Convert.ToInt32(dgvPacientes.CurrentRow.Cells[0].Value)));
ctrPaciente.EliminaPaciente(ctrPaciente.QueSoy((Paciente)dgvPacientes.CurrentRow.DataBoundItem));
ArmaGrilla();
}
}
Y aca paso como seria el .QueSoy()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public Paciente QueSoy(Paciente oPaciente)
{
if (oPaciente.GetType()==typeof(Hombre))
{
oPaciente = (Hombre)oPaciente;
}
else
{
if (oPaciente.GetType()==typeof(Mujer))
{
oPaciente = (Mujer)oPaciente;
}
}
return oPaciente;
}
Y aca paso el error que me tira cuando saco un objeto de la grilla!
Ustedes que opinan?
Desde ya gracias!

Valora esta pregunta


0