我有一个 DataGrid,其中包含上次监控中的一些“旧”列,现在当我开始新的监控时,我会观察下一次需要多少列,然后创建或删除这些列。
语法如下
if (anzAlteVar < anzNeueVar)
{
DataGridTextColumn textColumn = new DataGridTextColumn();
int zahler = 1;
string szahler;
for (int j = 0; j <= dgTable3.Columns.Count - 1; j++)
{
szahler = zahler.ToString();
dgTable3.Columns[j].Header = szahler;
zahler++;
}
while (dgTable3.Columns.Count() != anzNeueVar)
{
szahler = zahler.ToString();
textColumn.Header = szahler;
dgTable3.Columns.Add(textColumn);
zahler++;
}
}
//übernimmt die neuen Header in das Datagrid
for (int i = 0; i <= dgTable3.Columns.Count-1; i++)
{
dgTable3.Columns[i].Header = inhaltVar[i, 0];
}
我的问题在行 dgTable3.Columns.Add(textColumn);
在第二个 while 循环传递我得到错误
System.ArgumentException
因为我有两列同名。
我的问题:我怎么可能有两次相同的名字?我的意思是每次循环时我都会更改标题,并在给出新名称后添加它们。我在调试器上看了它,在它们上我每个标题只有一次,请帮助我并写下我做错了什么以及我必须更改什么。
友情祝福嗅嗅
最佳答案
在循环中而不是在外部创建新列。 DataGridTextColumn textColumn = new DataGridTextColumn();
。
在您的例子中,它指的是同一列,这就是它返回错误的原因。
while (dgTable3.Columns.Count() != anzNeueVar)
{
szahler = zahler.ToString();
DataGridTextColumn textColumn = new DataGridTextColumn();
textColumn.Header = szahler;
dgTable3.Columns.Add(textColumn);
zahler++;
}
关于c# - 为什么我在 Datagrid 中已经有了 Columnheader?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56574956/