我在“winforms”应用程序中使用C#3.5中的“DataGridView”。
我有一个自定义列是“MaskTextColumn”,我有一些自定义属性,如:Mask, “PromptChar”等。
当我复制“MaskTextColumn”时,我的客户属性没有被复制到新对象,我希望使用自定义属性值进行克隆。
答案 0 :(得分:2)
您应该覆盖clone方法以包含自定义属性。正如此link所述,
覆盖克隆时...请务必复制任何值 添加到派生类的属性。
代码如下:
public override Object Clone()
{
object clonedObject = base.Clone();
MaskTextColumn clonedColumn = clonedObject as MaskTextColumn;
clonedColumn.PromptChar = this.PromptChar;
// .. more property settings here
return clonedColumn;
}
答案 1 :(得分:2)
您需要覆盖自定义派生类中的Clone方法。
这样的事情:
public override object Clone()
{
var clonedColumn = base.Clone() as CustomColumn;
clonedColumn.CustomProp = this.CustomProp;
return clonedColumn;
}