二つ前の記事(w)のようなことをやるとなると、一つのセルで複数の値を保持する必要があるんだよね。
ということで問答無用で何かしらのコレクション(または派生クラス)を値に使う必要が出てくるわけで。
それでここらへんがデータバインディングを諦める理由のひとつだったり。
で、実を言うとセルの値にコレクションを使うだけならDataGridViewCellクラスでごにょごにょするだけで対応はできる。
DataGridViewTextBoxCellを拡張して値にコレクションを使おうとすると同じことをやる必要があるね。
ParseFormattedValueメソッドとGetFormattedValueメソッド。表示されている内容→値、と、値→表示する内容。
この二つの間のやりとりさえできれば、コレクションを使うのも問題なし。
手っ取り早くやるなら、コレクションのToStringメソッドの戻りをセルに表示する、としてしまえばOKだ。
値を作るときは、その逆で表示されている文字列からコレクションを新しく作ってあげればいいしね。
これで値は決まったので、次はセルクラスか編集コントロールかかな?
0 件のコメント:
コメントを投稿