我有一个带有WinForms的 DataGridView 应用程序,DataSource是一个DataTable (由Server填充),它有一个 xxx 列。下面的代码引发
DataGridView
xxx
ArgumentException未被处理。找不到名为xxx的列。
foreach (DataGridViewRow row in Rows) if (object.Equals(row.Cells["xxx"].Value, 123)) }
是否可以按列名获取单元格值?
发布于 2012-11-18 01:54:06
DataGridViewColumn 对象具有一个 Name (仅在forms中显示)和一个 HeaderText (在列顶部的GUI中显示)属性。示例中的索引器使用了该列的 Name 属性,因此由于您说该属性不起作用,所以我假设您确实在尝试使用该列的标题。
DataGridViewColumn
Name
HeaderText
没有任何内置的东西可以满足您的需要,但是它很容易添加。我会使用一种扩展方法来使它更容易使用:
public static class DataGridHelper public static object GetCellValueFromColumnHeader(this DataGridViewCellCollection CellCollection, string HeaderText) return CellCollection.Cast<DataGridViewCell>().First(c => c.OwningColumn.HeaderText == HeaderText).Value; }
然后在你的代码中:
foreach (DataGridViewRow row in Rows) if (object.Equals(row.Cells.GetCellValueFromColumnHeader("xxx"), 123))