C# 是否使用ComponentModel属性自动生成具有自定义DataGridViewColumn类型的DataGridView列?
我试图使用C# 是否使用ComponentModel属性自动生成具有自定义DataGridViewColumn类型的DataGridView列?,c#,datagridview,datagridviewcolumn,system.componentmodel,C#,Datagridview,Datagridviewcolumn,System.componentmodel,我试图使用System.ComponentModel属性属性,例如[Browsable(true)]根据定义为绑定列表的数据源自动生成列,但在解决如何更改列类型而不为每个数据集手动插入列类型的问题时遇到了问题。示例如下: 测试表格: public partial class Form1 : Form { public BindingList<clsTestRow> ds = new BindingList<clsTestRow>(); public For
System.ComponentModel
属性属性,例如[Browsable(true)]
根据定义为绑定列表的数据源自动生成列,但在解决如何更改列类型而不为每个数据集手动插入列类型的问题时遇到了问题。示例如下:
测试表格:
public partial class Form1 : Form
{
public BindingList<clsTestRow> ds = new BindingList<clsTestRow>();
public Form1()
{
InitializeComponent();
this.dgvTester.AutoGenerateColumns = true;
this.dgvTester.DataSource = this.ds;
this.ds.Add(new clsTestRow(1, DateTime.Now));
this.ds.Add(new clsTestRow(2, DateTime.Now));
this.ds.Add(new clsTestRow(3, DateTime.Now));
this.ds.Add(new clsTestRow(4, DateTime.Now));
this.ds.Add(new clsTestRow(5, DateTime.Now));
this.ds.Add(new clsTestRow(6, DateTime.Now));
this.ds.Add(new clsTestRow(7, DateTime.Now));
this.ds.Add(new clsTestRow(8, DateTime.Now));
this.ds.Add(new clsTestRow(9, DateTime.Now));
this.ds.Add(new clsTestRow(10, DateTime.Now));
this.ds.Add(new clsTestRow(11, DateTime.Now));
}
private void Form1_Load(object sender, EventArgs e)
{
this.dgvTester.Refresh();
}
}
从中提取自定义列
输出如下。这在编辑时缺少日期列中的日历控件,这是预期的,因为没有连接。我试图确定如何在每次分配Datasource
值时都不手动应用模式的情况下连接它,因为我希望使用AutoGenerateColumns
值可以对字符串以外的类型进行修改
public class clsTestRow
{
private int id = 0;
private DateTime date = DateTime.Now;
[Browsable(true)]
public int Id { get { return this.id; } set { this.id = value; } }
[Browsable(true)]
public DateTime Date { get { return this.date; } set { this.date = value; } }
public clsTestRow(int _id, DateTime _date)
{
this.id = _id;
this.date = _date;
}
}