将自定义可序列化类映射到数据源

时间:2013-08-20 05:54:19

标签: c# datagrid datagridview

我有以下课程:

    [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'

我该怎么做?

1 个答案:

答案 0 :(得分: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;

然后得到这样的东西:

enter image description here

按钮列。据我所知,你不能在DataSource中添加一个按钮列,你必须手动添加它。您可以使用CarParts方法来处理按钮而不是按钮本身并执行:

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

dataGridView1.Columns.Add(buttonCol);

并浏览按钮,将它们注册到carParts的方法