日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。一か月ぶりくらいの更新です。忘れてたわけじゃなくてお仕事が忙しかったので気力がなくなってただけなのでマイペースで進んでいこうと思います。DataGridコントロールということで今回はデータを表示する系のコントロールの代表格のDataGridコントロールです。DataGridコントロールは、WPFで表形式のデータを表示するためのコントロールです。WPFの柔軟なレイアウトシステムとテンプレートを使うことで以下のような表示を行うことができます。WPFのDataGridは行と列からなる格子状のエリアに、ItemsSourceプロパティに設定されたコレクションの1要素を1行として表示します。1行を表示するときに、予め定義した列の表示の設定に従いセルにデータを表示していきます。DataGridにはデフォルトで表示する要素の型のプロパティから自動的に列を生成する機能があります。列の自動生成機能ここでは、DataGridの列の自動生成機能を使ってデータの表示を行います。WPFアプリケーションのプロジェクトのWindowに以下のようにDataGridを置きます。</Grid></Window>そして、DataGridに表示するためのデータを格納するPersonクラスを作成します。}}string型、enum型、int型、bool型のプロパティを持っています。このクラスのリストをMainWindowクラスのコンストラクタで設定します。data;}ここで使用しているObservableCollection型は、DataGridなどのWPFのリストを表示するコントロールと、要素の追加・削除を同期するINotifyColletionChangedインターフェースを実装したクラスです。性能の問題など特別な理由がない限りこのクラスを利用すると便利です。このプログラムを実行すると、以下のようなWindowが表示されまs。プロパティに対応した列が生成されていることが確認できます。string型とint型の列は通常のテキストを表示する列が生成され、enum型はドロップダウンリストを表示する列が生成され、bool型にはチェックボックスを表示する列が生成されます。データを表示するだけなら、このような自動生成の機能を利用することができます。自動生成のカスタマイズDataGridの列の自動生成は、列を自動生成するタイミングで発生するAutoGeneratingColumnイベントである程度カスタマイズすることが出来ます。AutoGeneratingColumnイベント引数のDataGridAutoGeneratingColumnEventArgsクラスには以下のようなプロパティが定義されています。列を生成するプロパティの名前を取得します。列の生成をキャンセルする場合はtrueを設定します。自動生成される列を取得します。このプロパティに自分で作成したDataGridColumnの派生クラス(http://msdn.microsoft.com/ja-jp/library/vstudio/system.windows.controls.datagridcolumn(v=vs.110).aspx)を設定することで、自動生成するカラムを置き換えることが出来ます。自動生成のカスタマイズの例として、先ほどの自動生成のプログラムのDataGridにAutoGeneratingColumnイベントハンドラを作成し下記のように記述しました。}}上記の変更をしてプログラムを実行すると下図のような結果になります。カラムヘッダーがカスタマイズできていることと、Genderプロパティの列が生成されていないことが確認できます。C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。Blogの内容は個人の見解であり、所属する企業を代表するものではありません。)はてなブログをはじめよう!okazukiさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。