SHOEISHA iD

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

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

ComponentZine(ComponentOne)

独自の入力グリッドを持ったWPFアプリケーションの作成

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

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

C1FlexGridコンポーネントについて

 C1FlexGridは、連結または非連結データを表形式で表示/入力/編集できるWPF用データグリッドコンポーネントです。データソースと連結せずにコントロール内でデータを管理できるアンバウンドモードや、複数の行列をヘッダにする、行列の固定、行や列の並び替え機能やデータのグループ化とグループ集計、サイズの自動調整など、Windowsフォーム用のFlexGridが備える機能の多くを継承しており、グリッドコントロールに必要とされる基本機能をしっかりとサポートしています。

 行や列、ヘッダの文字色や背景色などの外観設定は、XAMLを意識することなく手軽にプロパティで設定でき、任意のセル範囲をマージできるカスタムマージや、セルの編集時と表示時にそれぞれほかのコントロールの機能を利用できるカスタムセルなども備え、柔軟なセルレイアウトと操作性の良いデータ入力インターフェイスを実現します。

C1FlexGridコンポーネントの各部の名称

 C1FlexGridコンポーネントは、固定行列(ヘッダ)、セル、垂直/水平スクロールバーで構成されます。配置したばかりのC1FlexGridコンポーネントは、デフォルトではヘッダやセルは一切配置されておらず、それぞれColumns/Rowsプロパティを使用して追加します。

 行列ヘッダは、プロパティで設定できるのは1行分だけで、複数行のヘッダを設定する場合はコードからオブジェクトを追加する方法を取ります。通常のデータ用セルは、デフォルトでデータを入力したり表示させる機能を持っています。また、スクロールバーは行列がコンポーネントに収まりきらないと自動的に表示されます。

C1FlexGridコンポーネントの各部の名称
C1FlexGridコンポーネントの各部の名称

セルの参照とセル番地について

 データを出し入れするセルは、それぞれ行列の番号によって参照します。例えば、1行目1列目のセルは(0,0)といったように、(行番号, 列番号)の番号で表され、行列が増えるたびにその数値が増えていきます。

セル番地の表し方(ヘルプファイルより抜粋)
セル番地の表し方(ヘルプファイルより抜粋)

多彩な機能の数々

 C1FlexGridコンポーネントはデータグリッドコンポーネントですが、その機能は大変多彩です。1回では全てを紹介しきれませんので、主な特徴を紹介しておきます。

  • データのグループ化機能

     WPFの主要なデータ連結インターフェイスである、ICollectionViewインターフェイスを使用して、C1FlexGridコンポーネントにデータを連結すると、セルに入力されている同じデータをグループ化してまとめることができます。

    データのグループ化(ヘルプファイルより抜粋)
    データのグループ化(ヘルプファイルより抜粋)
  • グループ集計機能

     データをグループ化すると、データによってはグループごとに集計したい場合があります。C1FlexGridコンポーネントでは、以下の集計計算を行うことができます。

    グループ集計機能
    機能 説明
    Sum グループ内のすべての値の合計を返します
    Count グループ内のnull以外の数を返します
    Average グループ内のnull以外のセルの平均値を返します
    Maximum グループ内の最大値を返します
    Minimum グループ内の最小値を返します
    Range グループ内の最大値と最小値の差を返します
    Std グループ内の値の標本標準偏差を返します(n-1に基づく式を使用)
    Var グループ内の値の標本分散を返します(n-1に基づく式を使用)
    StdPop グループ内の値の母標準偏差を返します(nに基づく式を使用)
    VarPop グループ内の値の母分散を返します(nに基づく式を使用)
    グループ集計機能のサンプル(ヘルプファイルより抜粋)
    グループ集計機能のサンプル(ヘルプファイルより抜粋)
  • データのソート

     C1FlexGridコンポーネントは、データの並び変え(ソート)機能も持っています。列ヘッダをクリックすると、データは昇順または降順でソートされます。グリッドをソートすると、対応する列に、現在のソート方向を示す三角形が表示されます。また、一般的なソート切り替え動作に加えて、[Ctrl]キーを押しながら列ヘッダをクリックすることでソートを解除できます。これにより、列に適用されているソートは解除されデータは元の順序で表示されます。

  • データのフィルタ処理

     ICollectionViewインターフェイスでは、Filterプロパティを使用したデータのフィルタ処理がサポートされているため、この機能を使用してデータをフィルタリングできます。多数のデータの中から、同じキーワードを持つデータを抽出したい場合などは、このフィルタ機能を使うとデータの絞り込みが簡単に行えます。

  • データのアンバウンドモードでの使用

     C1FlexGridコンポーネントは、データを非連結モードで使用することもできます。単にグリッドに行と列を追加するだけで、データグリッドとして使用できます。

  • セルのマージ

     C1FlexGridコンポーネントは、セルの結合をサポートしています。行列どちらの方向でも隣接するセル同士を結合し1つのセルとして扱うことができます。セル結合は行列ヘッダに対しても行うことができます。

    列ヘッダのセルを結合
    列ヘッダのセルを結合
  • 複数行列のヘッダ

     C1FlexGridコンポーネントは、行および列ヘッダのセルをサポートするとともに、複数セルのヘッダをサポートしています。たとえば列ヘッダを2行にして、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/6290 2011/11/28 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング