SHOEISHA iD

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

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

ComponentZine(ComponentOne)

SQL Serverのデータをグリッドで表示するWPFアプリケーションの作成

ComponentOne Studio Enterprise 2011JのC1FlexGridコントロールを使ったWPFアプリケーションの作成

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

C1FlexGridコントロールについて

 C1FlexGridコントロールの概要は、前回の記事『独自の入力グリッドを持ったWPFアプリケーションの作成』を参照ください。ここでは、今回使用するC1FlexGridコントロールの連結モードについて説明しておきます。

C1FlexGridコントロールの連結モード

 C1FlexGridコントロールは、ItemsSourceプロパティを使ってデータをグリッドに挿入します。このItemsSourceプロパティは、IEnumerableインターフェイスを実装するオブジェクトを設定するようになっていますが、ほとんどの場合はこれより少し高いレベルで作業を行わせるため、ICollectionViewインターフェイスを実装するオブジェクトを使用します。

 ICollectionViewインターフェイスは、WPFの主要なデータ連結インターフェイスで、WindowsフォームではIBindlingListインターフェイスがこの役割を果たしていました。このインターフェイスは豊富な機能を備えており、データを連結するだけでなく、データの並び変え(ソート)や特定のデータだけを表示するフィルタ機能、データのページング/グループ化などの機能も提供します。

 そして、このICollectionViewインターフェイスを実装するためのクラス「ListCollectionView」が用意されています。ListCollectionViewクラスを使ってデータをC1FlexGridコントロールに設定すると、特に難しいコードを書かなくてもデータの並び変え(ソート)や特定のデータだけを表示するフィルタ機能、データのページング/グループ化などの機能を使うことができるようになります。

 連結モードでのデータ連結は、次の手順を取ります。

  1. データをIListクラスのオブジェクトに設定
  2. IListオブジェクトをもとにListCollectionViewクラスのインスタンスを作成
  3. ItemSourceプロパティにListCollectionViewクラスのインスタンスを設定

 たったこれだけの作業で、データをC1FlexGridコントロールに連結モードで連結させることができます。

データの並び変え

 ICollectionViewインターフェイスを使うことで、C1FlexGridコントロールはソートをサポートします。列ヘッダをクリックすると、データは昇順または降順でソートされます。グリッドをソートすると、対応する列に現在のソート方向を示す三角形が表示されます。

 C1FlexGridでは、一般的なソート切り替え動作に加え、[Ctrl]キーを押しながら列ヘッダをクリックすることでソートを解除できます。これにより、列に適用されているソートは解除され、データは元の順序で表示されます。

 実際のソート処理は、データソースとして使用されるICollectionViewインターフェイスによって実行されます。C1FlexGridコントロールは単にマウスクリックを検出するだけであり、ソート処理はこのデータソースオブジェクトに任されます。

データのグループ化

 ICollectionViewインターフェイスではグループ化がサポートされており、データを簡単に階層化して表示できます。例えば次のコードは、列「CategoryName」にある同じカテゴリ名のデータを1つに集約しグループ化します。

view.GroupDescriptions.Add(New PropertyGroupDescription("CategoryName"))

 各データグループにはグループ名と[▲]のボタンが付き、このボタンを使ってユーザーはグループデータをマウス1つで折りたたみ/展開ができます。

グループデータをマウス1つで折りたたみ/展開
グループデータをマウス1つで折りたたみ/展開

次のページ
アプリケーションの作成とデータベースファイルの組み込み

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

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

もっと読む

この記事の著者

瀬戸 遥(セト ハルカ)

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

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

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

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6317 2011/12/19 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング