2

我有以下课程:

    [System.Serializable]
    public class CarParts
    {
        public string PartId { get; set; }
        public int PartCost { get; set; }


        public Button Edit{ get; set; }
    }

我想做的是:

 List<CarParts> parts = new List<CarParts>();
(fill parts)


m_StockParts.Columns.Add()//map column to 'Edit'
m_StockParts.Columns.Add()//map column to 'PartId'
m_StockParts.Columns.Add()//map column to 'PartCost'

我该怎么做呢?

4

1 回答 1

0

你可以DataSource这样使用:

     List<CarParts> parts = new List<CarParts>();
     parts.Add(new CarParts(){PartId = "2", PartCost = 233, Edit =new Button(){Text = "btn"}});
     InitializeComponent();
     dataGridView1.DataSource = parts;

然后得到这样的东西:

在此处输入图像描述

至于按钮栏。据我所知,您无法在 DataSource 中添加按钮列,您必须手动添加。您可以保留CarParts一种方法来处理按钮而不是按钮本身并执行以下操作:

var buttonCol = new DataGridViewButtonColumn();
buttonCol.Name = "ButtonColumnName";
buttonCol.HeaderText = "Edit";
buttonCol.Text = "Edit";

dataGridView1.Columns.Add(buttonCol);

并通过按钮,将它们注册到 carParts 的方法

于 2013-08-20T06:02:15.393 回答