C#:使用类对象列表填充DataGridView

时间:2017-02-11 15:38:37

标签: c# list class datagridview rows

我有下面的类填充一个列表,如下所示,当一个名为MenuGrid的DataGridView上单击绑定到每一列的按钮时,该列表如下所示:

public class orderedfood
{
     public string price;
     public string item;
}
List<orderedfood> order = new List<orderedfood>();
private void MenuGrid_CellClick(object sender, DataGridViewCellEventArgs e)
{
     order.Add(new orderedfood { item = MenuGrid.Rows[e.RowIndex].Cells[1].Value.ToString(), price = subtotal.ToString() });
}

此MenuGrid具有以下格式: enter image description here

我想要做的是重新加载绑定到订单列表的DataGridView,因此我尝试了以下代码:

        MenuGrid.DataSource = null;
        MenuGrid.Rows.Clear();


        for (int i = 0; i < order.Count; i++)
        {
            MenuGrid.Rows.Add(order[i].item, order[i].price);


        }
        MenuGrid.Refresh();

这给出了以下输出,这不是我想要的:

enter image description here

最终屏幕截图在行数上是正确的,但不包括项目的名称和价格。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

不要将DataSource设置为null。你也可以在for循环中尝试这个,

            DataGridViewRow row = new DataGridViewRow();
            dataGridView1.Rows.Add(row);
            dataGridView1.Rows.Insert(0, order[i].item, order[i].price);