我想扩展 DataGridViewRow 以拥有两个自定义属性。
我知道我必须从 DataGridViewRow 继承并添加我的自定义属性。
如果有人给我看路线图,我将不胜感激。
我想扩展 DataGridViewRow 以拥有两个自定义属性。
我知道我必须从 DataGridViewRow 继承并添加我的自定义属性。
如果有人给我看路线图,我将不胜感激。
首先从 DataGridViewRow 继承(假设 DataGridViewRowEx 作为类名),然后在您拥有 DataGridView 实例后,将属性 RowTemplate 分配给 DataGridViewRowEx 的新实例:
dg.RowTemplate = new DataGridViewRowEx();
之后应该没问题,添加到 Rows 集合的所有行都将与继承的行具有相同的类型(DataGridViewRow 的 Clone() 方法创建与 RowTemplate 相同类型的新行,见下文)。
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;
}