3

DataGridView のカスタム列を作成しました。その理由は、列にプロパティ (型) を追加したいからです。DataGridView を右クリックし、[列の編集...] を選択します。次に、カスタム列タイプの列を選択するとプロパティを編集できますが、編集後に「OK」をクリックしてから「列の編集...」に再度移動すると、プロパティに割り当てた値が表示されますなくなっている。

これが私のコードです:

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

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

プロパティウィンドウの画像:

適切なウィンドウのイメージ

プロパティウィンドウで値を変更すると、その値がプロパティに割り当てられるように、誰かが私が間違っていること、または追加する必要があることを教えてもらえますか?

4

1 に答える 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 のカスタム プロパティが保存されないを参照してください。

于 2012-05-30T13:43:58.780 に答える