我想将DataGridViewRow扩展为具有两个自定义属性。
我知道我必须从DataGridViewRow继承并添加我的自定义属性。
如果有人向我展示路线图,我将不胜感激。
答案 0 :(得分:3)
首先从DataGridViewRow继承(假设DataGridViewRowEx为类名),然后在有DataGridView实例后将属性RowTemplate分配给DataGridViewRowEx的新实例:
dg.RowTemplate = new DataGridViewRowEx();
之后应该没问题,添加到Rows集合的所有行都与继承的行相同(DataGridViewRow的Clone()方法创建与RowTemplate相同类型的新行,见下文)。 / p>
public override object Clone()
{
DataGridViewRow row;
Type type = base.GetType();
if (type == rowType)
{
row = new DataGridViewRow();
}
else
{
row = (DataGridViewRow) Activator.CreateInstance(type);
}
if (row != null)
{
base.CloneInternal(row);
if (this.HasErrorText)
{
row.ErrorText = this.ErrorTextInternal;
}
if (base.HasHeaderCell)
{
row.HeaderCell = (DataGridViewRowHeaderCell) this.HeaderCell.Clone();
}
row.CloneCells(this);
}
return row;
}