0

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

我怎样才能做到这一点?

代码:

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);
4

2 回答 2

2

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

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

不要忘记在 ToString() 方法的返回值更改时发出通知。

于 2013-07-08T07:29:32.750 回答
2

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

于 2013-07-08T07:41:51.170 回答