Datagridview cómo convertir la fila seleccionada en un objeto personalizado

Datagridview cómo convertir la fila seleccionada en un objeto personalizado

Deberá iterar la colección e ir tras la propiedad DataBoundItem, que son los datos subyacentes.

var pilots = new List<Pilots>(grid.SelectedRows.Count);

for(int index = 0; index < grid.SelectedRows.Count; index++)
{
   var selectedRow = grid.SelectedRows[index];
   var pilot = (Pilots)selectedRow.DataBoundItem;

   pilots.Add(pilot);
}

El código de arriba muestra cómo puede lograr esto (yo hice el código a mano alzada, así que perdone cualquier error de sintaxis).

Aquí está el artículo de msdn sobre la propiedad DataBoundItem:http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewrow.databounditem(v=vs.110).aspx


No sé cuál es la estructura de su base de datos, pero

var selectedPilots = dgvPilots.SelectedRows.Cast<Pilots>().ToList();

es la forma correcta de hacerlo. Sin embargo, sospecho Pilots en tu caso es un DataTable , y lo que necesita es convertir esos elementos en el Class adecuado tipo:si tuviera que disparar, diría que tienes un Pilot clase (singular), a la que deberías lanzar.


List<int> indexes = DataGrid1.SelectedRows.Cast<DataGridViewRow>().Select(x => x.Index).ToList();

            foreach (i in indexes)
            {
                Pilots Pilot = (Pilots)DataGrid1.Rows[i].DataBoundItem;
            }