我正在尝试使用C#将样式应用于除第一个之外的网格中的所有列。这是我的语法,但它会命中我的if()
语句并立即离开。
编写此语法的正确方法是什么?
foreach(GridColumn col in r.Columns)
{
if (col != r.MasterTableView.Columns[0])
{
col.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
}
}
答案 0 :(得分:1)
我猜想r.Columns中的第一列和r.MasterTableView.Columns中的第一列绝不是一回事,所以你的if测试总是失败。
假设可以索引r.Columns,最简单的方法是更改for的foreach,然后检查索引,如下所示:
for( int columnIndex = 1 ; columnIndex < r.Columns.Count ; ++ columnIndex )
{
r.Columns[columnIndex].ItemStyle.HorizontalAlign = HorizontalAlign.Center;
}
由于列集可能正确地从0开始,因此启动&#34; columnIndex&#34;迭代器变量从1表示跳过第0列,样式更改将应用于所有其他列。
如评论中所述,您还可以使用Linq Skip()函数从第二项启动foreach迭代,如下所示:
foreach(GridColumn col in r.Columns.Skip(1))
{
...
}
希望这有帮助
答案 1 :(得分:0)
试试这个:
for(int i = 1; i < r.Columns.Count; i++)
{
r.MasterTableView.Columns[i].ItemStyle.HorizontalAlign = HorizontalAlign.Center;
}