Вопрос по c# – Пользовательское свойство не будет сохранено при изменении в окне свойств

3

Я создал пользовательский столбец для DataGridView, и причина в том, что я хочу добавить свойство (тип) в столбец. Я щелкаю правой кнопкой мыши DataGridView и выбираю & quot; Редактировать столбцы ... & quot ;. Затем, когда я выбираю столбец, который является моим пользовательским типом столбца, я могу редактировать это свойство, но если я нажму "ОК" после редактирования, а затем перейдите к & quot; Редактировать столбцы ... & quot; снова значение, которое я присвоил своей собственности, исчезло.

Вот мой код:

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

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

И изображение окна свойств:

Изображение окна свойств http://s8.postimage.org/fzrke75gl/Capture.png

Может ли кто-нибудь сказать мне, что я делаю неправильно или что мне нужно добавить, чтобы при изменении значения в окне свойств это значение присваивалось свойству?

У меня похожая проблема, может ли кто-нибудь помочь? / Stackoverflow.com вопросы / 45836304 / ... Licentia

Ваш Ответ

1   ответ
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;
  }
}

Видеть Пользовательские свойства переопределенных DataViewColumn не сохраняются

Это сработало, спасибо тебе большое:) Gunnarsi
Работает как шарм. Обнаружение этого раньше спасло бы меня лучшую часть дня. Daniel
Имеет похожую проблему со свойством List, которое не сохраняется в пользовательском классе DataGridViewColumn в конструкторе VS. Не могу поверить, что это на самом деле исправило это. Спасибо! user3700562

Похожие вопросы