我如何用一组用户定义的对象填充Gridview组合框

时间:2013-03-28 16:01:14

标签: c# entity-framework

在EF中我有一个Entity,Stuff,我想在这个代码中使用所有Stuffs Stuffs表填充Gridview组合框:

 var stuffs = from t in Database.Context.Stuffs
              select t;
 return stuffs.ToList<Stuff>();

 datagridview.datasource=stuffs;

我重写ToString方法:

 public override string ToString()
 {
    return this.Name + "-" + this.CompanyName;
 }

但是收到此错误:

datagridview组合框单元格值无效错误

2 个答案:

答案 0 :(得分:0)

您是否尝试使用显示多个列的组合框?

你能发送你的组合框的xaml代码吗?你如何绑定它?

如果是这样,你可能需要的是绑定类的属性上的每一列,而不是重写ToString()以返回字符串中的每个值。

答案 1 :(得分:0)

我不是说这是最好的方法,我不熟悉WinForms。

但是有了这个样本,它似乎想要你想要: enter image description here

class Stuff
    {
        public string Name { get; set; }
        public string CieName { get; set; }

        public override string ToString()
        {
            return string.Format("{0}-{1}", Name, CieName);
        }
    }

    public partial class Form1 : Form
    {
        private List<Stuff> _myList = new List<Stuff>()
                                          {
                                              new Stuff() {Name = "Anne", CieName = "Google"},
                                              new Stuff() {Name = "Creg", CieName = "Yahoo"}
                                          };

        public Form1()
        {
            InitializeComponent();

            BindComboBoxColumnDataSource();
        }

        private void BindComboBoxColumnDataSource()
        {
            var comboColumn = dataGridView1.Columns["ComboBoxColumn"] as DataGridViewComboBoxColumn;

            if (comboColumn != null)
                comboColumn.DataSource = _myList;
        }
    }