DataGridView列显示对象的ToString()

时间:2013-07-08 07:10:43

标签: c# datagridview tostring

我有一个绑定到BindingSource(由对象列表构建)的DataGridView。我已经使用BindingSource作为DataGridView的DataSource,我想在DataGridview的一列中显示对象的ToString()方法。

我该怎么做?

代码:

List<DynstSection> sectionlist = new blockloader.Blockloader(app).getDynStDb();
sectionlist.Sort();

bs_sections.DataSource = sectionlist;

listBox1.AutoGenerateColumns = false;
listBox1.DataSource = bs_sections;
DataGridViewColumn col = new DataGridViewCheckBoxColumn();
col.DataPropertyName = "Checked";
col.HeaderText = "Checked";
col.Name = "Checked";
col.Width = 20;
listBox1.Columns.Add(col);
DataGridViewColumn col2 = new DataGridViewTextBoxColumn();
col2.ReadOnly = true;
col2.DataPropertyName = HERE I WOULD LIKE TO HAVE TOSTRING()  
col2.HeaderText = "Name";
col2.Name = "Name";
col2.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
listBox1.Columns.Add(col2);

2 个答案:

答案 0 :(得分:2)

一种解决方案是创建一个属性,并在该属性的getter中调用ToString()方法,如下所示:

public MyToStringProperty {get{return this.ToString();}}

当ToString()方法的返回值发生变化时,不要忘记发出通知。

答案 1 :(得分:2)

使用循环添加行而不是绑定它们。或者公开返回该类的tostring方法的类(您正在绑定)的属性