我有一个绑定到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);
答案 0 :(得分:2)
一种解决方案是创建一个属性,并在该属性的getter中调用ToString()方法,如下所示:
public MyToStringProperty {get{return this.ToString();}}
当ToString()方法的返回值发生变化时,不要忘记发出通知。
答案 1 :(得分:2)
使用循环添加行而不是绑定它们。或者公开返回该类的tostring方法的类(您正在绑定)的属性