DataGridViewColumn
オブジェクトにはName
(フォーム デザイナでのみHeaderText
表示される) プロパティと (列の上部の GUI で表示される) プロパティがあります。あなたの例のインデクサーは列のName
プロパティを使用しているため、それが機能していないと言うので、列のヘッダーを実際に使用しようとしていると思います。
必要な機能が組み込まれているわけではありませんが、簡単に追加できます。使いやすくするために拡張メソッドを使用します。
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))
{
// ...
}
}