我正在“winforms”应用程序中使用 C# 3.5 中的“DataGridView”。
我有一个自定义列是“MaskTextColumn”,其中有一些自定义属性,例如:Mask、“PromptChar”等。
当我克隆“MaskTextColumn”时,我的客户属性不会复制到新对象,我想使用自定义属性值进行克隆。
我正在“winforms”应用程序中使用 C# 3.5 中的“DataGridView”。
我有一个自定义列是“MaskTextColumn”,其中有一些自定义属性,例如:Mask、“PromptChar”等。
当我克隆“MaskTextColumn”时,我的客户属性不会复制到新对象,我想使用自定义属性值进行克隆。
您应该覆盖克隆方法以包含您的自定义属性。正如此链接所述,
覆盖 Clone ... 时,请务必复制添加到派生类的任何属性的值。
代码如下:
public override Object Clone()
{
object clonedObject = base.Clone();
MaskTextColumn clonedColumn = clonedObject as MaskTextColumn;
clonedColumn.PromptChar = this.PromptChar;
// .. more property settings here
return clonedColumn;
}
您需要在自定义派生类中重写 Clone 方法。
像这样的东西:
public override object Clone()
{
var clonedColumn = base.Clone() as CustomColumn;
clonedColumn.CustomProp = this.CustomProp;
return clonedColumn;
}