WPFでデータグリッドの選択行にあるセル値を取得する際、DataGridColumnのGetCellContentを利用する方法があります。この方法は取得したいセルが画面に表示されていない場合、値の取得に失敗してしまいます。そこで、カラムが非表示でもセルの値を取得する方法を紹介します。取得例に使用するデータグリッドには「dgMaster」という名前を設定しています。secret」という順序で、3つのカラムを定義しています。カラムの種別は3つとも「DataGridTextColumn」で、セルにはテキストが表示されます。secretカラムのVisibilityはHiddenまたはCollapsedになっていて、画面に表示されない状態です。noカラムとnameカラムは、画面に表示されている状態です。対象カラムのGetCellContentを呼び、引数にデータグリッドの選択行(SelectedItem)を渡します。セルがテキストの場合は戻り値がTextBlockになり、Textプロパティからセル値が取得できます。以下が、サンプルコードです。※この方法ですと、no列とname列の値は取得できますが、secret列の値は取得できません。カラムのVisibilityがHiddenまたはCollapsedになっているとき、GetCellContentの戻り値にはnullが返ってきてしまいます。(サンプル11行目のsecretCellTextはnullになり、secretCellText.Textの参照で例外が発生。)非表示カラムの値を取得する方法データグリッドのSelectedItemを直接展開する形で、セルの値を取得することができます。この場合、データグリッドにバインドしているデータの型に合わせ、適切なキャストをする必要があります。以下が、サンプルコードです。((string[])this.dgMaster.SelectedItem)[2];サンプルのコメントにも書いていますが、データグリッドにバインドしたデータにより取得方法が変わります。例として、データテーブル(DataTable)をバインドしたときと、文字列配列(string[][])をバインドしたときの方法を記載しています。それぞれのデータに対応した型でキャストすることで、非表示にしているsecret列のセル値も取得できるようになります。まとめカラムがHiddenやCollapsedで非表示になっているとき、セルの値を取得する方法を解説しました。テーブルに見えない隠しカラムを用意し、内部処理でのみ使いたいときなどにご活用ください。注意点として、データグリッドにバインドしたデータの型によって、値の取得方法を変えないといけないのが難点です。コメントをキャンセルメールアドレスが公開されることはありません。