DataGridコントロールの新しい2つの機能を使う

2010年6月15日(火)
PROJECT KySS

スクロールしなければ表示されないデータをすべて印刷する

今回は、業務用アプリケーションでは最も使用頻度の高い、DataGridを用いたサンプルを2つ紹介します。1つは印刷処理、もう1つは、フルスクリーンモードのサンプルです。

まず、印刷のサンプルから説明します。前回は、Silverlight 4でサポートされた印刷機能を紹介しました。しかしながら、前回の方法では、 DataGridコントロールのデータ件数が多く一度に表示しきれない場合、画面上に表示されているデータしか印刷できません。

そこで、スクロールしなければ表示されないすべてのデータを印刷できるサンプルを作ってみましょう。

今回は1ページ内に収まるデータを印刷する方法について解説しますが、もちろん、複数ページに渡るデータも印刷できます。また機会があれば紹介していきたいと考えています。

このサンプルのプロジェクト・ファイルは、こちらからダウンロードできます。

 今回は、氏名の「読み(先頭の1文字)」あるいは「年齢」でグループ分けしたデータを、DataGridコントロールに表示します(図1、図2)。 一画面には表示しきれない件数のサンプル・データをバインドしていますので、スクロールバーが表示されています。

この画面上から[印刷実行]ボタンをクリックします。Microsoft XPS Document Writerを選択して[印刷]ボタンをクリックし、 DataGridGroup.xpsというファイル名で書き出します。書き出されたXPSファイルをビューアーで閲覧すると、図3のようにDataGridコントロールにバインドしたデータがすべて出力されています。

氏名の読み(先頭の1文字)でグループ分けされたデータがDataGridに表示されている。

図1:氏名の読み(先頭の1文字)でグループ分けされたデータがDataGridに表示されている。(クリックで拡大)

年齢でグループ分けされたデータがDataGridに表示されている。

図2:年齢でグループ分けされたデータがDataGridに表示されている。

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住所>
    市立松山中学校勤務先>
  情報>
  ~情報>繰り返し、略~
顧客情報>

四国のSOHO。薬師寺国安(VBプログラマ)と、薬師寺聖(デザイナ、エンジニア)によるコラボレーション・ユニット。1997年6月、Dynamic HTMLとDirectAnimationの普及を目的として結成。共同開発やユニット名義での執筆活動を行う。XMLおよび.NETに関する著書や連載多数。最新刊は「Silverlight実践プログラミング」両名とも、Microsoft MVP for Development Platforms - Client App Dev (Oct 2003-Sep 2012)。http://www.PROJECTKySS.NET/

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています