C# 修改包含对象的datagridview

C# 修改包含对象的datagridview,c#,winforms,datagridview,cas,C#,Winforms,Datagridview,Cas,我有一个datagridview,它的数据源是一个对象列表。我需要修改datagridview单元格,但当我这样做时,我收到了一个异常,因为它说我试图将字符串转换为我的对象类型。 我可以修改单元格、修改datagridview和列表吗 能帮忙吗 编辑:我添加了一些代码 This the class using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.

我有一个datagridview,它的数据源是一个对象列表。我需要修改datagridview单元格,但当我这样做时,我收到了一个异常,因为它说我试图将字符串转换为我的对象类型。 我可以修改单元格、修改datagridview和列表吗

能帮忙吗

编辑:我添加了一些代码

This the class

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using System.Data;

namespace Postes.Model
{    
    public class FilasDeficiencia        
    {
        public FilasDeficiencia() {             
        }
        public CampoDeficiencias Contratista { get; set; }
        public CampoDeficiencias Responsable_grupo { get; set; }
        public CampoDeficiencias Fecha_insp { get; set; }
        public CampoDeficiencias SED { get; set; }
        public CampoDeficiencias Cod_deficiencia { get; set; }
        public CampoDeficiencias Cod_poste { get; set; }
        public CampoDeficiencias Tipo_poste { get; set; }
        public CampoDeficiencias Material { get; set; }
        public CampoDeficiencias Tamano_poste { get; set; }
        public CampoDeficiencias Criticidad { get; set; }
        public CampoDeficiencias Tipo_pastoral { get; set; }
        public CampoDeficiencias Material_pastoral { get; set; }
        public CampoDeficiencias Criticidad_pastoral { get; set; }
        public CampoDeficiencias Referencia_ubicacion { get; set; }
        public CampoDeficiencias Artefacto_AP { get; set; }
        public CampoDeficiencias Retenida { get; set; }
        public CampoDeficiencias Vereda { get; set; }
        public CampoDeficiencias Accesible { get; set; }
        public CampoDeficiencias Redes { get; set; }
        public CampoDeficiencias Equipo_telecomunicaciones { get; set; }
        public CampoDeficiencias Sumunistro_referencia { get; set; }
        public CampoDeficiencias Calle { get; set; }
        public CampoDeficiencias Lote { get; set; }
        public CampoDeficiencias Manzana { get; set; }
        public CampoDeficiencias URB { get; set; }
        public CampoDeficiencias Distrito { get; set; }
        public CampoDeficiencias Coordenadas_x { get; set; }
        public CampoDeficiencias Coordenadas_y { get; set; }
        public CampoDeficiencias Foto_1 { get; set; }
        public CampoDeficiencias Foto_2 { get; set; }
        public CampoDeficiencias Foto_3 { get; set; }
        public CampoDeficiencias Foto_4 { get; set; }
        public CampoDeficiencias Observaciones { get; set; }
        public CampoDeficiencias Superficie { get; set; }
        public CampoDeficiencias Errores { get; set; }
    }
}
以及列表中包含的其他类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Postes.Model
{
    public class CampoDeficiencias
    {
        private string mensaje = string.Empty;

        public NombreCampo NombreCampo { get; set; }
        public string ValorCampo { get; set; }
        public Type Tipo { get; set; }
        public Validaciones[] Validar { get; set; }
        public int Longitud { get; set; }
        public string[] ValoresPosibles { get; set; }
     }
}
名单如下:

                    lista_deficiencias.Add(new FilasDeficiencia
                    {
                        Contratista = new CampoDeficiencias()
                         {
                             NombreCampo = NombreCampo.Contratista,
                             Tipo = typeof(string),
                             ValorCampo = Convert.ToString(grilla[i, 1]).Trim(),
                             Longitud = 20,
                             Validar = new Validaciones[] { Validaciones.Obligatorio, Validaciones.Longitud }
                         },
                        Responsable_grupo = new CampoDeficiencias() { NombreCampo = NombreCampo.Responsable_grupo, Tipo = typeof(string), ValorCampo = Convert.ToString(grilla[i, 2]).Trim(), Longitud = 15, Validar = new Validaciones[] { } },
                        Fecha_insp = new CampoDeficiencias() { NombreCampo = NombreCampo.Fecha_insp, Tipo = typeof(string), ValorCampo = Convert.ToString(grilla[i, 3]).Trim(), Longitud = 15, Validar = new Validaciones[] { Validaciones.Obligatorio } },
                        SED = new CampoDeficiencias() { NombreCampo = NombreCampo.SED, Tipo = typeof(string), ValorCampo = Convert.ToString(grilla[i, 4]).Trim(), Longitud = 9, Validar = new Validaciones[] { } },
                        Cod_deficiencia = new CampoDeficiencias() { NombreCampo = NombreCampo.Cod_deficiencia, Tipo = typeof(string), ValorCampo = Convert.ToString(grilla[i, 5]).Trim(), Longitud = 0, Validar = new Validaciones[] { Validaciones.Obligatorio } },
                        Cod_poste = new CampoDeficiencias() { NombreCampo = NombreCampo.Cod_poste, Tipo = typeof(string), ValorCampo = Convert.ToString(grilla[i, 6]).Trim(), Longitud = 0, Validar = new Validaciones[] { Validaciones.Obligatorio } },
                        Tipo_poste = new CampoDeficiencias() { NombreCampo = NombreCampo.Tipo_poste, Tipo = typeof(string), ValorCampo = Convert.ToString(grilla[i, 7]).Trim(), Longitud = 0, Validar = new Validaciones[] { } },
                        Material = new CampoDeficiencias() { NombreCampo = NombreCampo.Material, Tipo = typeof(string), ValorCampo = Convert.ToString(grilla[i, 8]).Trim(), Longitud = 9, Validar = new Validaciones[] { } },
                        Tamano_poste = new CampoDeficiencias() { NombreCampo = NombreCampo.Tamano_poste, Tipo = typeof(string), ValorCampo = Convert.ToString(grilla[i, 9]).Trim(), Longitud = 9, Validar = new Validaciones[] { } },
                        Criticidad = new CampoDeficiencias() { NombreCampo = NombreCampo.Criticidad, Tipo = typeof(string), ValorCampo = Convert.ToString(grilla[i, 10]).Trim(), Longitud = 9, Validar = new Validaciones[] { Validaciones.Obligatorio } },
                        Tipo_pastoral = new CampoDeficiencias() { NombreCampo = NombreCampo.Tipo_pastoral, Tipo = typeof(string), ValorCampo = Convert.ToString(grilla[i, 11]).Trim(), Longitud = 9, Validar = new Validaciones[] { Validaciones.Obligatorio } },
                        Material_pastoral = new CampoDeficiencias() { NombreCampo = NombreCampo.Material_pastoral, Tipo = typeof(string), ValorCampo = Convert.ToString(grilla[i, 12]).Trim(), Longitud = 9, Validar = new Validaciones[] { } },
                        Criticidad_pastoral = new CampoDeficiencias() { NombreCampo = NombreCampo.Criticidad_pastoral, Tipo = typeof(string), ValorCampo = Convert.ToString(grilla[i, 13]).Trim(), Longitud = 9, Validar = new Validaciones[] { } },
                        Referencia_ubicacion = new CampoDeficiencias() { NombreCampo = NombreCampo.Referencia_ubicacion, Tipo = typeof(string), ValorCampo = Convert.ToString(grilla[i, 14]).Trim(), Longitud = 9, Validar = new Validaciones[] { } },
                        Artefacto_AP = new CampoDeficiencias() { NombreCampo = NombreCampo.Artefacto_AP, Tipo = typeof(string), ValorCampo = Convert.ToString(grilla[i, 15]).Trim(), Longitud = 9, Validar = new Validaciones[] { } },
                        Retenida = new CampoDeficiencias() { NombreCampo = NombreCampo.Retenida, Tipo = typeof(string), ValorCampo = Convert.ToString(grilla[i, 16]).Trim(), Longitud = 9, ValoresPosibles = new string[] { "SI", "NO" }, Validar = new Validaciones[] { Validaciones.ValoresPosibles } },
                        Vereda = new CampoDeficiencias() { NombreCampo = NombreCampo.Vereda, Tipo = typeof(string), ValorCampo = Convert.ToString(grilla[i, 17]).Trim(), Longitud = 9, ValoresPosibles = new string[] { "SI", "NO" }, Validar = new Validaciones[] { Validaciones.ValoresPosibles } },
                        Accesible = new CampoDeficiencias() { NombreCampo = NombreCampo.Accesible, Tipo = typeof(string), ValorCampo = Convert.ToString(grilla[i, 18]).Trim(), Longitud = 9, ValoresPosibles = new string[] { "SI", "NO" }, Validar = new Validaciones[] { Validaciones.ValoresPosibles } },
                        Redes = new CampoDeficiencias() { NombreCampo = NombreCampo.Redes, Tipo = typeof(string), ValorCampo = Convert.ToString(grilla[i, 19]).Trim(), Longitud = 9, ValoresPosibles = new string[] { "SI", "NO" }, Validar = new Validaciones[] { Validaciones.ValoresPosibles } },
                        Equipo_telecomunicaciones = new CampoDeficiencias() { NombreCampo = NombreCampo.Equipo_telecomunicaciones, Tipo = typeof(string), ValorCampo = Convert.ToString(grilla[i, 20]).Trim(), Longitud = 9, Validar = new Validaciones[] { } },
                        Sumunistro_referencia = new CampoDeficiencias() { NombreCampo = NombreCampo.Sumunistro_referencia, Tipo = typeof(string), ValorCampo = Convert.ToString(grilla[i, 21]).Trim(), Longitud = 9, Validar = new Validaciones[] { } },
                        Calle = new CampoDeficiencias() { NombreCampo = NombreCampo.Calle, Tipo = typeof(string), ValorCampo = Convert.ToString(grilla[i, 22]).Trim(), Longitud = 9, Validar = new Validaciones[] { } },
                        Lote = new CampoDeficiencias() { NombreCampo = NombreCampo.Lote, Tipo = typeof(string), ValorCampo = Convert.ToString(grilla[i, 23]).Trim(), Longitud = 9, Validar = new Validaciones[] { } },
                        Manzana = new CampoDeficiencias() { NombreCampo = NombreCampo.Manzana, Tipo = typeof(string), ValorCampo = Convert.ToString(grilla[i, 24]).Trim(), Longitud = 9, Validar = new Validaciones[] { } },
                        URB = new CampoDeficiencias() { NombreCampo = NombreCampo.URB, Tipo = typeof(string), ValorCampo = Convert.ToString(grilla[i, 25]).Trim(), Longitud = 9, Validar = new Validaciones[] { } },
                        Distrito = new CampoDeficiencias() { NombreCampo = NombreCampo.Distrito, Tipo = typeof(string), ValorCampo = Convert.ToString(grilla[i, 26]).Trim(), Longitud = 9, Validar = new Validaciones[] { Validaciones.Obligatorio } },
                        Coordenadas_x = new CampoDeficiencias() { NombreCampo = NombreCampo.Coordenadas_x, Tipo = typeof(string), ValorCampo = Convert.ToString(grilla[i, 27]).Trim(), Longitud = 9, Validar = new Validaciones[] { } },
                        Coordenadas_y = new CampoDeficiencias() { NombreCampo = NombreCampo.Coordenadas_y, Tipo = typeof(string), ValorCampo = Convert.ToString(grilla[i, 28]).Trim(), Longitud = 9, Validar = new Validaciones[] { } },
                        Foto_1 = new CampoDeficiencias() { NombreCampo = NombreCampo.Foto_1, Tipo = typeof(string), ValorCampo = Convert.ToString(grilla[i, 29]).Trim(), Longitud = 9, Validar = new Validaciones[] { Validaciones.Obligatorio } },
                        Foto_2 = new CampoDeficiencias() { NombreCampo = NombreCampo.Foto_2, Tipo = typeof(string), ValorCampo = Convert.ToString(grilla[i, 30]).Trim(), Longitud = 9, Validar = new Validaciones[] { Validaciones.Obligatorio } },
                        Foto_3 = new CampoDeficiencias() { NombreCampo = NombreCampo.Foto_3, Tipo = typeof(string), ValorCampo = Convert.ToString(grilla[i, 31]).Trim(), Longitud = 9, Validar = new Validaciones[] { } },
                        Foto_4 = new CampoDeficiencias() { NombreCampo = NombreCampo.Foto_4, Tipo = typeof(string), ValorCampo = Convert.ToString(grilla[i, 32]).Trim(), Longitud = 9, Validar = new Validaciones[] { } },
                        Observaciones = new CampoDeficiencias() { NombreCampo = NombreCampo.Observaciones, Tipo = typeof(string), ValorCampo = Convert.ToString(grilla[i, 33]).Trim(), Longitud = 9, Validar = new Validaciones[] { } },
                        Superficie = new CampoDeficiencias() { NombreCampo = NombreCampo.Superficie, Tipo = typeof(string), ValorCampo = Convert.ToString(grilla[i, 34]).Trim(), Longitud = 9, Validar = new Validaciones[] { } },
                        Errores = new CampoDeficiencias() { NombreCampo = NombreCampo.Errores, Tipo = typeof(string), ValorCampo = "", Longitud = 100, Validar = new Validaciones[] { } }
                    });

它显示了将任何对象属性指定给任何列。显示您分配给网格的类和克隆我不需要添加列想法是当用户在网格内脉冲时,修改单元格,然后将其保存在我列表的valorCampo属性中我想您没有尝试datagridview。这是您的第一次吗?