我想在我的DataGridView
的第一列中显示,但没有找到一个很好的解决方案。我尝试向DGV添加一个新列但它崩溃了..
List<string[]> rows = File.ReadAllLines(Open_CSV.FileName,
Encoding.ASCII).Select(x => x.Split(';')).ToList();
DataTable dt = new DataTable();
foreach (string s in rows[0])
{
dt.Columns.Add(s);
}
rows.RemoveAt(0);
rows.ForEach(x =>
{
dt.Rows.Add(x);
});
DGV_DATA.DataSource = dt;
您是否有一些解决方案,DataTable
或DataGridView
中最佳位置添加?
答案 0 :(得分:1)
不确定它是否非常有效,但这可以解决问题
List<string[]> rows = File.ReadAllLines(......)
.Select((x,i) =>
string.Join(";", (i+1).ToString(), x)
.Split(';')).ToList();
您可以使用序列中使用当前项目的索引器的Select版本,并将该索引添加到将要拆分的字符串中。 我担心的是这样一来,你可以通过这种方式构建一个额外的字符串,但是你不需要在下面的代码中做任何改变。
答案 1 :(得分:1)
使用DataSource
时,手动添加数据可能会导致问题,正如您所经历的那样。只要数字不属于数据,向DataSource
添加行号显然不是一个好主意。在这种情况下,一个想法是在行标题中显示数字,如here所述。
在您自己构建DataSource的情况下,您可能会想到离开使用DataSource-Property的路径并开始直接添加行。
Rows
- DataGridView
的属性可用于手动添加行。您只需要构建类似于DataGridViewRow
- 列表的对象,您可以将其传递给AddRange
- 方法。对于这些DataGridViewRows
,您可以添加其他列。并确保将该附加列添加到Columns
- DataGridView
的集合中。