none
DataGridViewComboBoxColumn 绑定数据源发生dataerror错误 RRS feed

  • 问题

  • 想在DataGridViewComboBoxColumn datasource 中绑定一个自定义数据源List<BindEntity>,例子中由 EZGasSupportTypeInfo.GetComStationTypeInfo()返回这个数据源。BindEntity.Value在这里存的是枚举。Name是这个枚举对应的中文名称。在下面的例子里我想在datatable中的column1列中存入枚举值,但在datagridview界面上显示中文信息。可是总是失败。会发生DataError错误 其中异常具体信息为:cell value 不合法。。。

    我该怎么办才能成功绑定这个数据源

     class BindEntity

    {

    public string Name {get}

    public object Value {get}

    }

    public enum ComStationType

    {

    PCPSYS,

    ESPSYS,

    ...

    }

      DataGridViewComboBoxColumn dgvc = new DataGridViewComboBoxColumn();
                dgvc.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing;
                dgvc.DataPropertyName = "column1";
                dgvc.DataSource = EZGasSupportTypeInfo.GetComStationTypeInfo()(是一个List<BindEntity>);
                dgvc.DisplayMember = "Name";
                dgvc.ValueMember = "Value";

                this.dataGridView1.Columns.Add(dgvc);

                DataTable dt = new DataTable();
                dt.Columns.Add("column1", typeof(ComStationType));
                DataRow dr = dt.NewRow();
                dr[0] = ComStationType.ESPSYS;
                dt.Rows.Add(dr);

                this.dataGridView1.DataSource = dt;


    shan423


    • 已编辑 shan423 2012年12月13日 9:17
    2012年12月13日 9:14

答案

全部回复