|
|
●概要 表示する元となるデータをどのようにFreeGridに引き渡すか。 ●方式検討 二次元配列やデータベースのテーブルやクエリを表示することが多いので、これらが簡便になるようI/Fを考える。また、個別にセルを指定しての入出力があれば完全になる。配列の場合は、バインドモードとコピーモードが考えられる。バインドモードとは、配列をリンクすることになり、FreeGridと配列が同期化される。 データベースでも本格的にはバインドモードがあればと思うが、これはド素人の範囲では通常不要な高度な機能なので、FreeGridではコピーモードしかない。 ●配列 FreeGrid内部では、配列はObject型しかないので、引き渡す場合も、Object型配列を渡してもらうことにする。但し、個々の中身のデータ型は任意である。 配列で、 ArrayA = ArrayB とすると、ArrayAは、ArrayBそのものを指す。これがバインドモードとなる。FreeGridが、内部でArrayAをアクセスすれば、つまり、ArrayBがアクセスされることになる。FreeGridで、ArrayAを更新すれば、ArrayBが更新される。 ArrayA = ArrayB.Clone とすれば、ArrayA ≠ ArrayBとなり、ArrayBのコピーがArrayAとなる。 ●データベース この場合は、DataSet.Tableまたは、DataRow渡しとなる。いずれの場合も、内部では、それらからレコードセットを取り出して、Object型配列にコピーする。Tableの場合は、行ヘッダ(フィールド名行)は、DataSetから取り出せるので自動設定できる。 DataRowの場合は、行ヘッダを指定して貰う。Tableでも行ヘッダを指定できるモードを用意し、Tableの中から部分的にフィールドを抽出できるようにすれば便利が良い。 ●個別 この場合は、デフォールトプロパティとして、Item(Col, Row) As Objectを準備し、セルを参照/設定できるようにする。デフォールトなので、使用する場合は、Itemを省略できる。 <Description("指定したセル内容の参照/設定です。")>
_
|