Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Custom property won't save when changed in property window

I've created a custom column for DataGridView, and the reason is that I want to add a property (type) to a column. I right click the DataGridView and select "Edit columns...". Then when I select the column that is my custom column type I'm able to edit the property, but if I clike "OK" after editing and then go to "Edit columns..." again the value that I assigned to my property is gone.

Here is my code:

public class CustomColumn : DataGridViewColumn
{
    [DisplayName("Type")]
    [Category("Custom Property")]
    public String type { get; set; }

    public CustomColumn()
        : base(new DataGridViewTextBoxCell())
    {
    }
}

And an image of the property window:

Image of the propert windows

Can someone tell me what I'm doing wrong, or what I need to add so that when I change the value in the property window, that value is assigned to the property?

like image 519
Gunnarsi Avatar asked Dec 06 '25 07:12

Gunnarsi


1 Answers

I think you need to override the Clone() method in order for that to work:

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;
  }
}

See Custom properties on overridden DataViewColumn do not save

like image 133
LarsTech Avatar answered Dec 08 '25 19:12

LarsTech