0

在 EF 中,我有一个 Entity,Stuff,我想用以下代码填充一个 Gridview 组合框,其中包含 Stuffs 表中的所有 Stuff:

 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 组合框单元格值无效错误

4

2 回答 2

0

您是否尝试让组合框显示多列?

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

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

于 2013-03-28T16:13:13.150 回答
0

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

但是有了这个样本,它似乎确实想要你想要的: 在此处输入图像描述

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;
        }
    }
于 2013-03-29T12:15:10.263 回答