SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

ComponentZine(ComponentOne)

SQL Serverのデータをグリッド表示するWPFアプリケーションの作成【増補改訂版】

ComponentOne Studioを活用したWindowsフォームアプリケーションの作成

  • このエントリーをはてなブックマークに追加

C1DataGridコントロールの概要

 C1DataGridコントロールは、表形式データをWPFアプリケーションで簡単に表示、編集、分析することができるコントロールです。ADO.NETデータセットなどの、System.Collections.IEnumerableインターフェースを実装している任意のオブジェクトに対してデータ連結して、データの入力・編集を行うことが可能です。グリッドデータは、グループ化や集計、フィルタ機能などの高度な機能があらかじめ実装されているので、複雑で難しいコードを書く必要は一切ありません。

 また、C1DataGridコントロールは、SilverlightとWPFで使用できる強力なグリッドコントロールで、オブジェクトモデルはMicrosoftのDataGridコントロールに基づいているため、C1DataGridコントロールに簡単に移行できます。

C1DataGridコントロールの特徴

 C1DataGridコントロールは、以下のような特徴を持っています。

完全な対話式グリッド

 エンドユーザーの使用感を高めるために、完全な対話式グリッドを作成します。列のサイズ変更と並べ替え、行の編集、ソート、フィルタ処理、グループ化、フリーズ、選択など多くの対話式機能が組み込まれています。

データのグループ化と集計

 Outlookスタイルのグループ化をサポートします。列ヘッダーをグリッドの上にある領域にドラッグするだけでデータをグループ化できます。展開/折りたたみ可能なノードが自動的に生成されます。グループ化したヘッダー行に、集計関数の計算結果や合計を表示することも可能です。

Excel形式のフィルタ機能

 デフォルトでは、Excel形式のフィルタ機能をサポートしています。このタイプのフィルタ機能では、各列でドロップダウンメニューを使用できるため、ユーザーはフィルタ条件を作成できます。

高パフォーマンス

 行と列の両方を再利用することで(UIの仮想化)、大規模なデータセットを処理する際に最適なパフォーマンスを得ることができます。

複数の組み込みの列タイプ

 C1DataGridコントロールには、多くの列エディタが組み込まれており、それによってすべての標準データ型をサポートすることができます。テキスト、チェックボックス、DateTimeピッカー、コンボボックス、および画像のためのエディタが組み込まれています。マスク付きテキスト、ハイパーリンク、複数行テキスト、カラーピッカーなどカスタムの列エディタから、必要なエディタを選択することも可能です。

RowDetailsTemplateおよび階層のサポート

 C1DataGridコントロールでは、各行の折りたたみ可能なセクション内にUIElementsを埋め込むことができるRowDetailsTemplateテンプレートがサポートされています。例えば、別のDataGridを埋め込むだけで、マスター/詳細グリッドを作成して階層データを表示できます。

上端行テンプレートと下端行テンプレート

 上端行テンプレートと下端行テンプレートを使用して、カスタム行をグリッドに簡単に作成および追加することができます。例えば、独自のフィルタの設計、合計行の指定、UIElementsの埋め込みなどを行うことが可能です。

複数選択モード

 すべてのセル選択オプションをエンドユーザーに提供します。具体的には、単一セル、単一行、単一列、単一範囲、複数行、複数列、および複数範囲です。DataGrid for WPFコントロールはクリップボードをサポートするので、エンドユーザーは選択したセルをMicrosoft Excelなどの任意のテキストエディタに簡単に貼り付けることが可能です。

新規行

 ユーザーは、グリッドの上部または下部のいずれかに空の新規行を表示することで、新規行をDataGrid for WPFに追加できます。

カスタム行とカスタム列

 各DataGrid行に対して独自のデータテンプレートを設計し、複数のデータフィールドのデータを結合できる複合列を作成します。

ClearStyleを使って簡単に色を変更する

 DataGrid for WPFは、ClearStyle技術(後述)をサポートしているため、色のプロパティをいくつか設定するだけで、グリッド全体のスタイルを簡単に設定できます。

結合されたヘッダや複数行/列のヘッダで、ソートやフィルタリングなどの機能制限

 ヘッダのセルを結合する場合や、複数行/複数列のヘッダを表示する場合は、ヘッダが通常の行/列と同等に扱われるため、ソートや移動、行/列の選択、フィルタリング、グループ化などの機能を利用することができません。

(参考:[DataGrid for WPF]結合されたヘッダや複数行/列のヘッダで、ソートやフィルタリングなどの機能を使用できない

C1DataGridコントロールの外観の操作

 C1DataGridコントロールは、一般的なテーブル書式設定オプション(1行ごとの背景色の変更、ヘッダーの表示/非表示、グリッド線、スクロールバーなど)をサポートしています。さらに、ブラシ、スタイル、およびテンプレートのプロパティで、コントロールとその行、列、ヘッダー、セルの外観を完全に変更できます。

C1DataGridコントロールの各部位の名称
C1DataGridコントロールの各部位の名称

行および列ヘッダーの表示/非表示の設定

 デフォルトでは、行ヘッダーと列ヘッダーがグリッドに表示されます。ただし、必要に応じて、一方または両方のヘッダーを非表示に設定できます。そのためには、HeadersVisibilityプロパティを設定します。HeadersVisibilityプロパティには、次のオプションの一つを設定できます。

オプション 説明
None 行ヘッダーと列ヘッダーの両方がグリッドで非表示になります。
Column 列ヘッダーのみがグリッドに表示されます。
Row 行ヘッダーのみがグリッドに表示されます。
All(デフォルト) 列ヘッダーと行ヘッダーの両方がグリッドに表示されます。

グリッド線の表示/非表示の設定

 デフォルトでは、垂直方向と水平方向のグリッド線がグリッドに表示されます。ただし、必要に応じて、一方または両方のグリッド線を非表示に設定できます。そのためには、GridLinesVisibilityプロパティを設定します。GridLinesVisibilityプロパティには、次のオプションの一つを設定できます。

オプション 説明
None 水平方向と垂直方向の両方のグリッド線がグリッドで非表示になります。
Horizontal 水平方向のグリッド線のみがグリッドに表示されます。
Vertical 垂直方向のグリッド線のみがグリッドに表示されます。
All(デフォルト) 水平方向と垂直方向の両方のグリッド線がグリッドに表示されます。

新規行の表示/非表示の設定

 デフォルトでは、グリッドの末尾に新規追加行が配置されます。ただし、必要に応じてその位置の変更が可能です。そのためには、NewRowVisibilityプロパティを設定します。NewRowVisibilityプロパティには、次のオプションの一つを設定できます。

オプション 説明
Top 新規追加行がグリッドの先頭に表示されます。
Bottom(デフォルト) 新規追加行がグリッドの末尾に表示されます。

垂直および水平スクロールバーの表示/非表示の設定

 デフォルトでは、グリッドの内容の高さまたは幅がグリッドのサイズを超えたときにのみ、グリッドの水平スクロールバーと垂直スクロールバーが表示されます。ただし、必要に応じて、スクロールバーを常に表示または非表示になるように設定したり、まったく無効になるように設定できます。そのためには、VerticalScrollbarVisibilityプロパティとHorizontalScrollbarVisibilityプロパティの設定が必要になります。VerticalScrollbarVisibilityプロパティとHorizontalScrollbarVisibilityプロパティには、次のオプションの一つを設定することができます。

オプション 説明
Disabled 選択したスクロールバーは無効になります。
Auto(デフォルト) 選択したスクロールバーは、グリッドの内容がグリッドウィンドウの大きさを超えるときだけ表示されます。
Hidden 選択したスクロールバーは非表示になります。
Visible 選択したスクロールバーは常に表示されます。

行の詳細の表示/非表示の設定

 デフォルトでは、行の詳細は折りたたまれて表示されません。RowDetailsVisibilityModeプロパティを使用して、行の詳細を表示するかどうかと、いつ表示するかを設定できます。RowDetailsVisibilityModeプロパティには、次のオプションの一つを設定できます。

オプション 説明
VisibleWhenSelected 行の詳細は選択されたときにのみ表示されます。
Visible 行の詳細は常に表示されます。
Collapsed(デフォルト) 行の詳細は折りたたまれて表示されません。

ブラシ

 C1DataGridコントロールが提供するブラシの複数のプロパティを使用して、コントロールとその行、列、ヘッダー、セルの外観を完全に変更できます。次の表では、いくつかのブラシについて説明します。

ブラシ 説明
Background レンダリング時に使用される背景ブラシを取得または設定します(このブラシは、データグリッドのすべてのパーツに適用されます)。
Foreground レンダリング時に使用される前景ブラシを取得または設定します(このブラシは、データグリッドのすべてのパーツに適用されます)。
BorderBrush レンダリング時に使用される境界線ブラシを取得または設定します(このブラシは、テーマに基づいて、データグリッドの一部のパーツに適用されます)。
SelectedBrush 選択された行、行ヘッダー、列ヘッダーなどのレンダリング時に使用される、選択されたブラシを取得または設定します。
MouseOverBrush マウスが行、行ヘッダー、列ヘッダーなどの上にあるときに使用される、マウスオーバーブラシを取得または設定します。
RowBackground 行の背景ブラシを取得または設定します。
RowForeground 行の前景ブラシを取得または設定します。
AlternatingRowBackground 交互表示行の背景ブラシを取得または設定します。
AlternatingRowForeground 交互表示行の前景ブラシを取得または設定します。
HorizontalGridLinesBrush 水平線に適用されるブラシを取得または設定します。
VerticalGridLinesBrush 垂直線に適用されるブラシを取得または設定します。

ClearStyle

 C1DataGridコントロールは、コントロールのテンプレートを変更することなくコントロールの色を簡単に変更できる、ComponentOne Studio独自の新しいClearStyle技術をサポートします。

 C1DataGridコントロールの配色を設定するC1DataGrid.Backgroundプロパティなど、いくつかのプロパティを設定するだけで、C1DataGridコントロールの外観を全面的に変更できます。塗りつぶしのオプションも、単色だけでなく2色のグラデーションを使用できます。

次のページ
C1DataGridコントロールのデザイン時の設定

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
ComponentZine(ComponentOne)連載記事一覧

もっと読む

この記事の著者

瀬戸 遥(セト ハルカ)

8ビットコンピュータの時代からBASICを使い、C言語を独習で学びWindows 3.1のフリーソフトを作成、NiftyServeのフォーラムなどで配布。Excel VBAとVisual Basic関連の解説書を中心に現在まで40冊以上の書籍を出版。近著に、「ExcelユーザーのためのAccess再...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8490 2015/02/27 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング