我为DataGridView创建了一个自定义列,原因是我想在列中添加属性(类型)。 我右键单击DataGridView并选择“编辑列...”。然后,当我选择我自定义列类型的列时,我可以编辑属性,但是如果我在编辑后单击“确定”,然后再次转到“编辑列...”,我分配给我的属性的值走了。
这是我的代码:
public class CustomColumn : DataGridViewColumn
{
[DisplayName("Type")]
[Category("Custom Property")]
public String type { get; set; }
public CustomColumn()
: base(new DataGridViewTextBoxCell())
{
}
}
属性窗口的图像:
Image of the propert windows http://s8.postimage.org/fzrke75gl/Capture.png
有人可以告诉我我做错了什么,或者我需要添加什么,这样当我更改属性窗口中的值时,该值是否已分配给属性?
答案 0 :(得分:8)
我认为您需要覆盖Clone()
方法才能使其正常工作:
public class CustomColumn : DataGridViewColumn {
public CustomColumn()
: base(new DataGridViewTextBoxCell()) {
}
[DisplayName("Type")]
[Category("Custom Property")]
public String type { get; set; }
public override object Clone() {
CustomColumn copy = base.Clone() as CustomColumn;
copy.type = type;
return copy;
}
}
请参阅Custom properties on overridden DataViewColumn do not save