C1FlexGridコンポーネントについて
C1FlexGridは、連結または非連結データを表形式で表示/入力/編集できるWPF用データグリッドコンポーネントです。データソースと連結せずにコントロール内でデータを管理できるアンバウンドモードや、複数の行列をヘッダにする、行列の固定、行や列の並び替え機能やデータのグループ化とグループ集計、サイズの自動調整など、Windowsフォーム用のFlexGridが備える機能の多くを継承しており、グリッドコントロールに必要とされる基本機能をしっかりとサポートしています。
行や列、ヘッダの文字色や背景色などの外観設定は、XAMLを意識することなく手軽にプロパティで設定でき、任意のセル範囲をマージできるカスタムマージや、セルの編集時と表示時にそれぞれほかのコントロールの機能を利用できるカスタムセルなども備え、柔軟なセルレイアウトと操作性の良いデータ入力インターフェイスを実現します。
C1FlexGridコンポーネントの各部の名称
C1FlexGridコンポーネントは、固定行列(ヘッダ)、セル、垂直/水平スクロールバーで構成されます。配置したばかりのC1FlexGridコンポーネントは、デフォルトではヘッダやセルは一切配置されておらず、それぞれColumns/Rowsプロパティを使用して追加します。
行列ヘッダは、プロパティで設定できるのは1行分だけで、複数行のヘッダを設定する場合はコードからオブジェクトを追加する方法を取ります。通常のデータ用セルは、デフォルトでデータを入力したり表示させる機能を持っています。また、スクロールバーは行列がコンポーネントに収まりきらないと自動的に表示されます。
セルの参照とセル番地について
データを出し入れするセルは、それぞれ行列の番号によって参照します。例えば、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行に四半期を表示する、などという表を作成できます。