如何将列表中包含数据的列和行插入DataGridView(C#,Windows窗体)

问题描述 投票:-1回答:1

此项目基于Windows窗体(.NET Framework),C#。

假设我有3个分别命名为值的列表;

List<string> ListAlternatives = new List<string>();
List<string> ListParameters = new List<string>();
List<int> ListWeight = new List<int>();

已经填充了数据。我的目标是将这些列表中的数据插入DataGridView;分为两列参数(传递,速度,...)和权重(1、4,...)和一行替代项(Player1,Player2,...),如下所示。 [替代方案]下的数字将稍后手动插入到DataGridView中(在单元格上用鼠标单击并输入数字),该数据将用于使用权重参数计算总分。

+ ------------ + -------- + --------- + --------- + ------- -+|参数重量Player1 | Player2 | Player3 |+ ------------ + -------- + --------- + --------- + ------- -+|通过| 1 | 2 | 3 | 10 ||速度4 | 8 | 10 | 2 ||年龄| 3 | 1 | 9 | 3 ||射击8 | 4 | 1 | 4 |+ ------------ + -------- + --------- + --------- + ------- -+|总计| -------- | | | |+ ------------ + -------- + --------- + --------- + ------- -+

我已经知道可以通过操作列表来进行计算,但是我无法插入数据。问题是我尝试使用下面的代码导入数据,但是由于索引问题而没有成功。

        dataGridView1.Columns.Add("ParameterColumn", "Parameters");

        for (int i = 0; i < ListParameters.Count(); i++)
        {
            DataGridViewRow row = new DataGridViewRow();
            row.CreateCells(dataGridView1);
            row.Cells[0].Value = ListParameters[i];
            dataGridView1.Rows.Add(row);
        }

        foreach (var item in ListAlternatives)
        {
            dataGridView1.Columns.Add(item, item);
        }

其他问题;

在表中已有数据后,如果我想手动更改权重属性(在DataGridView中单击它们并写入新值),会有任何问题吗?我的目标是创建一些由许多不同值组成的图表。我一直在考虑是否只循环DataGridView并将数据放入新列表中-我将能够使用它们高效地创建图表吗?谢谢你的所有回答

c# list winforms datagridview datagridviewcolumn
1个回答
0
投票

请尝试以下代码,并返回任何错误。

   dataGridView1.Columns.Add("ParameterColumn", "Parameters");
   dataGridView1.Columns.Add("WeightColumn", "Weight");

    for (int i = 0; i < ListAlternatives.Count(); i++)
    {
        dataGridView1.Columns.Add("Player" + i.ToString() + "Column", "Player " + i.ToString());
    }

    for (int i = 0; i < ListParameters.Count(); i++)
    {
        dataGridView1.Rows.Add(ListParameters[i], ListWeight[i]);
    }

    dataGridView1.Rows.Add("Total");

    dataGridView1.Rows[dataGridView1.RowCount - 1].Cells[1].Value = ListWeight.Sum();//This is for getting sum of weights
© www.soinside.com 2019 - 2024. All rights reserved.