DataGridコントロールの新しい2つの機能を使う
スクロールしなければ表示されないデータをすべて印刷する
今回は、業務用アプリケーションでは最も使用頻度の高い、DataGridを用いたサンプルを2つ紹介します。1つは印刷処理、もう1つは、フルスクリーンモードのサンプルです。
まず、印刷のサンプルから説明します。前回は、Silverlight 4でサポートされた印刷機能を紹介しました。しかしながら、前回の方法では、 DataGridコントロールのデータ件数が多く一度に表示しきれない場合、画面上に表示されているデータしか印刷できません。
そこで、スクロールしなければ表示されないすべてのデータを印刷できるサンプルを作ってみましょう。
今回は1ページ内に収まるデータを印刷する方法について解説しますが、もちろん、複数ページに渡るデータも印刷できます。また機会があれば紹介していきたいと考えています。
このサンプルのプロジェクト・ファイルは、こちらからダウンロードできます。
今回は、氏名の「読み(先頭の1文字)」あるいは「年齢」でグループ分けしたデータを、DataGridコントロールに表示します(図1、図2)。 一画面には表示しきれない件数のサンプル・データをバインドしていますので、スクロールバーが表示されています。
この画面上から[印刷実行]ボタンをクリックします。Microsoft XPS Document Writerを選択して[印刷]ボタンをクリックし、 DataGridGroup.xpsというファイル名で書き出します。書き出されたXPSファイルをビューアーで閲覧すると、図3のようにDataGridコントロールにバインドしたデータがすべて出力されています。
図1:氏名の読み(先頭の1文字)でグループ分けされたデータがDataGridに表示されている。(クリックで拡大) |
図2:年齢でグループ分けされたデータがDataGridに表示されている。 |
図3:DataGridコントロールにバインドされたデータがすべて出力されている。 |
新規プロジェクトの作成と、印刷用データの追加
では、早速サンプルを作成していきましょう。
前回までのサンプル作成時と同様の手順で、新規Silverlight 4プロジェクト(プロジェクト名は「SL4_DataGridGroup」)を作成してください。 プロジェクト依存関係も設定してください。
前回同様、印刷用のサンプル・データ(リスト1)を追加しておきます。このデータはサンプル用のダミーです。 また、このXMLデータを処理するため、「Project/Add Reference」からSystem.Xml.Linqを追加しておきます。
リスト1 DataGridコントロールにバインドするXML文書(sampleData_Group.xml)
愛媛花子氏名>
え読み>
30年齢>
松山市道後1-1-1住所>
道後IT株式会社勤務先>
情報>
夏目団吾氏名>
な読み>
56年齢>
松山市湯渡2-2-2住所>
市立松山中学校勤務先>
情報>
~情報>繰り返し、略~
顧客情報>